Asp.net-Mvc
NUnit中MbUnit的行屬性?
在閱讀使用 MbUnit 作為測試框架的 Asp.Net MVC 程式碼範例時,我看到可以通過使用 Row 屬性針對多種輸入可能性執行單個測試,如下所示:
[Test] [Row("test@test_test.com")] [Row("sdfdf dsfsdf")] [Row("sdfdf@.com")] public void Invalid_Emails_Should_Return_False(string invalidEmail) { ... }請我想知道是否存在與 MbUnit 的 Row 屬性等效的 NUnit,或者在 NUnit 中實現這一點的優雅方式。謝謝。
我認為您在使用 TestCase 屬性
[TestCase(12,3,4)] [TestCase(12,2,6)] [TestCase(12,4,3)] public void DivideTest(int n, int d, int q) { Assert.AreEqual( q, n / d ); }
NUnits Sequential 屬性正是這樣做的。
SequentialAttribute 用於測試以指定 NUnit 應該通過選擇為測試參數提供的單個數據項來生成測試案例,而不生成其他組合。
注意:如果參數數據由多個屬性提供,則不保證 NUnit 使用數據項的順序。但是,對於給定的執行時和作業系統,可以預期它會保持不變。
範例 下面的測試將執行 3 次,如下所示:
我的測試(1,“A”)我的
測試(2,“B”)我的測試(3,空)
[Test, Sequential] public void MyTest( [Values(1,2,3)] int x, [Values("A","B")] string s) { ... }鑑於你的例子,這將成為
[Test, Sequential] public void IsValidEmail_Invalid_Emails_Should_Return_False( [Values("test@test_test.com" , "sdfdf dsfsdf" , "sdfdf@.com")] string invalidEmail) { ... }