0

一部の単体テストに MS UnitTestFramework ライブラリを使用しています。[DataSource] 属性を使用してデータを取得するテストもあれば、MTM データを取得して結果をカスタム オブジェクトのリストに保存するカスタム GetData を使用するものもあり、両方を行うものもあります。

両方を使用する TestMethods は、[DataSource] データを「親」データとして使用します。親データを使用したテストの反復では、GetData 呼び出しによって返されたリスト内の各データ オブジェクトを通過するループ内にすべてのテスト ステップが配置されます。全体として、別の for ループにネストされた for ループのようなものです。

私の質問はこれです: DataSource 属性だけでこの動作を実現する方法はありますか?

例: MTM テスト ケース 1 にはデータ行 1 と 2 があります。MTM テスト ケース 2 にはデータ行 a、b、および c があります。私の TestMethod は、1a、1b、1c、2a、2b、2c の 6 回実行されます。

(6 つの DataRows でケースを作成できることは承知していますが、それはスケーラブルなソリューションではありません。)

4

1 に答える 1

0

だから私はある種の解決策を持っていると思います。それは私が以前に行っていたこととは異なり、私もまだ実装していません。それは単なるアイデアです。代わりにデータベースからデータを取得する場合、TestCase 1 と 2 のデータを格納するテーブルを作成し、それを「親」テスト ケースにクロス結合する各テスト ケース テーブルのビューを作成して、[ DataSource] そのビューを見てください。まだ調査を行っていませんが、DataSource でストアド プロシージャから行を取得できる場合は、ビューよりも優れています。

于 2016-01-22T02:22:48.973 に答える