Lam*_*eek 5 collections dsl nunit unit-testing
我没有直接与NUnit合作,但我希望在不同的背景下借鉴它的一些想法.
一个特别优雅的想法是约束机制,它允许您编写表单的单元测试:
Assert.That(aValue, Is.GreaterThan(2.0) & Is.LessThan(5.0));
Run Code Online (Sandbox Code Playgroud)
您还可以测试某个值在某个范围内:
Assert.That(aValue, Is.InRange(2.0, 5.0));
Run Code Online (Sandbox Code Playgroud)
但是,似乎没有办法测试它aValue是允许值的集合之一:
Assert.That(aValue, Is.OneOf(aCollection));
Run Code Online (Sandbox Code Playgroud)
在单元测试中它不常见吗?它是否表明我的单元测试存在一些问题?每个人都只是将aValue注入一个虚拟的一个元素集合然后使用Is.SubsetOf吗?
当前版本的 NUnit (3.13) 有一个本机方法:Is.AnyOf(params object[] expected)
你可以这样使用它:
Assert.That(result, Is.AnyOf("red", "green", "blue"));
Assert.That(result, Is.Not.AnyOf("black", "white"));
Run Code Online (Sandbox Code Playgroud)