Asp.net-Mvc

NUnit中MbUnit的行屬性?

  • September 14, 2010

在閱讀使用 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 );
}

http://www.nunit.com/index.php?p=testCase&r=2.5.7

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) 
{ 
   ... 
} 

引用自:https://stackoverflow.com/questions/3706869