Unit testing 在NUnit中重复[TestCase]100次
我正在将循环100次(触发请求并验证响应100次)的webtest转换为NUnit。似乎Unit testing 在NUnit中重复[TestCase]100次,unit-testing,nunit,repeat,webtest,Unit Testing,Nunit,Repeat,Webtest,我正在将循环100次(触发请求并验证响应100次)的webtest转换为NUnit。似乎[Repeat]属性仅适用于[Test],而不适用于[TestCase]或任何其他装饰/属性。最干净的方法是什么?我想用这些参数触发一个测试用例100次,并且我不想在测试用例中添加loopCount参数,也不想在for循环中嵌套act和assert部分 下面的代码只运行一次 [TestCase("arg1", "arg2"), Repeat(100)] public void testing(string a
[Repeat]
属性仅适用于[Test]
,而不适用于[TestCase]
或任何其他装饰/属性。最干净的方法是什么?我想用这些参数触发一个测试用例100次,并且我不想在测试用例中添加loopCount
参数,也不想在for循环中嵌套act和assert部分
下面的代码只运行一次
[TestCase("arg1", "arg2"), Repeat(100)]
public void testing(string arg1, string arg2)
{
//Arrange
//Act
var response = RequestSender.SendGetRequest();
//Assert
AssertStuff(arg1, arg2);
}
从网上看,这种行为似乎是故意的
注:
目前无法在TestFixture或任何其他类型的测试套件上使用RepeatAttribute。只能重复单个试验。
由于参数化测试方法表示一个套件,因此当RepeatAttribute出现在此类方法上时,它将被忽略
假设TestCase
显然被视为参数化测试。循环看起来不可避免,没有一些额外的定制
您可以改为使用测试用例源并向其提供100个重复项的可枚举项:
私有静态只读IEnumerable\u onehundecases=
可枚举范围(0,100)
.Select(=>Tuple.Create(“arg1”、“arg2”);
[TestCaseSource(100个案例的名称))]
公共无效测试(元组THARGS)
{
...
资产(args.Item1、args.Item2);
}
但是对于同样的价格,你也可以稍微改变一下论据
\u一百个案例=
可枚举范围(0,100)
.Select(n=>Tuple.Create(n.ToString(),$“arg{n}”);