TestCaseSource属性を試してみました。1つの問題:sourceName文字列が無効な場合、テストは失敗するのではなく無視されます。sourceメソッドの名前が変更され、sourceName文字列が更新されない場合、これは非常に悪いことです。その後、テストで提供されたカバレッジが失われます。sourceNameが無効な場合にテストが失敗するように、NUnitの動作を変更する方法はありますか?
質問する
8494 次
3 に答える
7
これは NUnit 2.6.2 で解決されています。Type
(実装する必要があるIEnumerable
);を取る属性の新しいコンストラクターがあります。「データソースを指定するために文字列を使用しないため、リファクタリングが容易になるため、他の形式よりも優先して使用することをお勧めします。」(ドキュメンテーションより。)
これには、テスト ランナーが最新の NUnit をサポートしている必要があります。
非常に基本的な例 (詳細については、上記のドキュメント リンクを参照してください):
public class TestDataProvider : IEnumerable
{
public IEnumerator GetEnumerator()
{
return new List<int>{ 2, 4, 6 }.GetEnumerator();
}
}
[TestFixture]
public class MyTests
{
[TestCaseSource(typeof(TestDataProvider))]
public void TestOne(int number)
{
Assert.That(number % 2, Is.EqualTo(0));
}
}
于 2013-04-16T22:45:31.820 に答える