-4,-3,-3,-2,-1,0,1,2,2,3,4 のような 1 つのデータ ソースがあり、1 つの関数があり、この関数は、たとえばこのデータ ソースで繰り返し数をキャプチャできます-3,2 が繰り返されています。繰り返された数は、プログラムの最後に報告されます。良い例が見つかりませんでした(3時間かかりました)。同じ状況をテストできるNUnitを使用してユニットテストを実装するにはどうすればよいですか。結果を教えてくれます。例があれば、私にとって非常に役立ちます。
質問する
2854 次
4 に答える
4
TestCase
説明したような単純なデータに属性を使用できます。
[Test]
[TestCase(new[] { -4, -3, -3, -2, -1, 0, 1, 2, 2, 3, 4 }, new []{-3,2})]
public void YourTest(int[] given, int[] expected)
{ ... }
注: ReSharper (少なくとも私のバージョン) は、このような複数のテスト ケースを受け入れないため、NUnit GUI で複数のテスト ケースを確認する必要がありました。
于 2012-11-16T16:40:55.857 に答える
2
まず最初に - 動作テストを取得します。このようなもの:
[Test]
public void DetectsMinusThreeAndTwo()
{
RepeatingDigitsDetector target = new RepeatingDigitsDetector();
int[] source = new int[] { -4, -3, -3, -2, -1, 0, 1, 2, 2, 3, 4 };
int[] expected = new int[] { -3, -2 };
int[] actual = target.GetRepeats(source);
Assert.AreEqual(expected.Length, actual.Length, "checking lengths");
for (int i = 0; i < expected.Length; i++)
{
Assert.AreEqual(expected[i], actual[i], "checking element {0}", i);
}
}
後で、TestCase
またはTestCaseSource
属性などの機能を追加できます。しかし、( tddタグが示すように) TDD を実行しようとしている場合は、テストから始める必要があります。
于 2012-11-18T01:05:55.320 に答える
1
この場合、 TestCaseSourceをお勧めします。いくつかのテストにより、TestCase属性内のデータが読みにくくなる可能性があります。
于 2012-11-16T16:50:32.090 に答える