簡體   English   中英

NUnit數據驅動的帶有數據源的單元測試

[英]NUnit data driven unit test with datasource

我有一個數據源,如-4,-3,-3,-2,-1,0,1,2,2,3,4,我有一個函數,這個函數可以捕獲重復的數字,例如在這個數據源中我們有-3,2重復。重復的數字在程序結束時報告。 我找不到好的例子(我花了3個小時)。 如何使用NUnit實現單元測試,可以測試相同的情況並告訴我結果,如果你有一些例子,它對我非常有用。(真的很感激)。

您可以將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確認多個測試用例。

首先,要進行工作測試。 像這樣的東西:

    [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);
        }
    }

稍后,您可以開始添加類似TestCaseTestCaseSource屬性的內容。 但是,如果你正在試圖做TDD(作為標簽暗示),你需要開始與測試

我會在這個例子中推薦TestCaseSource 一些測試可能會使TestCase屬性內的數據更難讀取。

由於您的測試數據變得復雜,因此難以處理。 考慮將數據存儲在另一個源中,例如excel,json或Database。

我個人喜歡將測試數據存儲在嵌入式json文件中。 JsonSectionReader為此提供了很好的支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM