我正在用C编写一些单元测试,使用nunit。请看下面的代码:让单元测试在循环中运行是不好的做法吗?
[Test()]
public void TestCarCost() {
for (int i = 0; i < Examples.exampleCount; i++) {
Car car = new Car(Examples[i]);
Assert.AreEqual (car.getCost(), Examples[i].cost, "Test " + (i + 1) + " failed");
}
}
假设的例子是一些静态的数据类的汽车类型测试不同可能的输入,你可以看到,我想测试在car.getCost任何错误()功能。现在让它在一个循环中感觉不对,因为例如当任何断言失败时,它总是将你发送到同一行代码。而且,据我所知每当[Test()]中的断言失败时,nunit立即终止测试代码的其余部分。这意味着如果我有一个循环内的所有内容,并且断言nr 1失败,我不会去查看其他断言是否失败。明确地写出所有的测试基本上是写copypasted的代码,所以它也不觉得正确。在这种情况下什么会被认为是良好的做法?在单元测试中有大量类似的代码可以吗?有没有一些优雅的解决方案,我失踪了?
您可以在这里使用NUnit的'TestCase'属性。这里的'Example'是什么? –