Mbunit的行属性在Nunit中?
-
02-10-2019 - |
题
在阅读使用MBunit作为测试框架的ASP.NET MVC代码样本时,我看到可以通过使用一行属性来对多个输入可能性进行单个测试,例如:
[Test]
[Row("test@test_test.com")]
[Row("sdfdf dsfsdf")]
[Row("sdfdf@.com")]
public void Invalid_Emails_Should_Return_False(string invalidEmail)
{
...
}
请我想知道是否有相当于Mbunit的行属性的Nunit,或者是在Nunit中实现这一目标的优雅方法。谢谢。
解决方案
我想您追求测试柜属性
[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 顺序属性 做到这一点。
SequentialAttribute用于测试中,以指定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)
{
...
}
不隶属于 StackOverflow