2

-4,-3,-3,-2,-1,0,1,2,2,3,4 のような 1 つのデータ ソースがあり、1 つの関数があり、この関数は、たとえばこのデータ ソースで繰り返し数をキャプチャできます-3,2 が繰り返されています。繰り返された数は、プログラムの最後に報告されます。良い例が見つかりませんでした(3時間かかりました)。同じ状況をテストできるNUnitを使用してユニットテストを実装するにはどうすればよいですか。結果を教えてくれます。例があれば、私にとって非常に役立ちます。

4

4 に答える 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 を実行しようとしている場合はテストから始める必要があります。

于 2012-11-18T01:05:55.320 に答える
1

この場合、 TestCaseSourceをお勧めします。いくつかのテストにより、TestCase属性内のデータが読みにくくなる可能性があります。

于 2012-11-16T16:50:32.090 に答える