2

一連の同様の assert ステートメントの代わりに、テストがパラメーターのリスト (期待値を含む) を反復処理し、結果を期待値と比較するように、C# 単体テストをパラメーター化する方法は?

使用事例:

  • この特定の単体テストでは、XML ドキュメントをチェックし、XML 要素名のリストを調べて、ドキュメントにこれらの要素が含まれていることと、それらの値が期待どおりであることを確認する必要があります。

テスト メソッドのアサート部分は、次のような一連のアサーションで構成されます。

var width = output.Element(namespace + "width");
Assert.IsNotNull(width);
Assert.AreEqual(width.Value, "600");

冗長なコードを避け、代わりに同じコードを異なる値で繰り返し処理したいと考えています。アサーション チェックで反復するデータ構造を定義するにはどうすればよいですか?

必要なデータ構造は、タプルのリストです (この場合、型 (XName、string) の要素を含みます)。それをC#で表現するには?ここで役立つ標準的な単体テスト ツールはありますか?

詳しくは:

  • Visual Studio 単体テスト フレームワーク (Microsoft.VisualStudio.TestTools.UnitTesting) と .Net 3.5 を使用する
  • ユースケース自体をさまざまなパラメーター値で実行する必要はなく、アサート部分だけを実行します (上記のコード)。
4

3 に答える 3

2

Nunit には、属性を介してアクセスする TestCases と呼ばれるものがあります。これはあなたが求めているもののように聞こえます:

http://nunit.org/?p=testCase&r=2.5

アップデート:

この回答は、使用されているフレームワークを指定する質問の更新前に提供されました

アップデート

この質問には関連性があるようにも見えます: MS Test Equivalent (または欠如)

MSTest には NUnit の TestCase に相当するものがありますか?

于 2013-03-11T16:50:05.600 に答える
0

mstest を使用しているとのことなので、 Microsoft の単体テスト フレームワークを使用したデータ ドリブン テストを説明するMSDN独立したブログからのリソースをいくつか紹介します。

要約すると、DataSource属性を指定しTestMethodて、データのソースを指す必要があります。CSV または SQL Server CE を指定できます。

于 2013-03-11T16:57:41.720 に答える