在阅读使用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)
{
...
}
请问我是否想知道NUnit是否等同于MbUnit的Row属性,或者是否是在NUnit中实现此目的的优雅方式。感谢。
答案 0 :(得分:10)
我认为你是在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 );
}
答案 1 :(得分:2)
NUnits Sequential attribute正是如此。
SequentialAttribute用于a 测试以指定NUnit应该 通过选择生成测试用例 提供的个人数据项 测试参数,没有 产生额外的组合。
注意:如果提供参数数据 多个属性,顺序在 哪个NUnit使用的数据项不是 保证。但是,它可以 预计将保持不变 给定运行时和操作系统。
示例以下测试将是 执行三次,如下:
MyTest(1,“A”)
MyTest(2,“B”) MyTest(3,null)
[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)
{
...
}