我们可以在单元测试中有一个循环吗?
我的方法返回一个IEnumerable<IEnumerable>
,我想对该创建IEnumerable<IEnumerable>
的逻辑进行单元测试。基本上,我想测试IEnumerable
中的元素计数是否符合预期。
我无法在没有循环语句的情况下找到测试内部IEnumerable
的替代方法。如果这是一个好习惯,请告诉我。
没有技术原因,您不能这样做。一个单元测试中可以有多个Assert语句。在循环中具有Assert语句只是在测试中具有多个Assert语句的简便方法。
避免在测试中编写循环的一个原因是使测试一目了然且易于阅读。因为您已经用NUnit标记了问题,并且您说只想测试元素计数是否符合预期,所以请考虑使用NUnit Constraints进行声明。
例如,
是的,您可以在单元测试中使用循环,但要小心。如Alex York所述,如果您测试one
有一个CollectionAssert
(Microsoft.VisualStudio.TestTools.UnitTesting
),这更加方便。 :-)