我有以下测试:
[Test]
public void ListContainsAnObjectOfTypeFoo()
{
list.Single(t => t.GetType() == typeof(foo));
}
这在测试抛出异常的上下文中“起作用”,如果该类型的项不存在或存在多次,则失败。
然而,语义上并不是那么好。有没有什么方法可以测试Single()
条件使用显式NUnit断言?我想知道CollectionAssert
中是否有一个我无法看到的秘密。
答案 0 :(得分:2)
取代Single
,取得计数并将其与1
进行比较,如:
list.Count(t => t.GetType() == typeof(foo)) ! = 1
答案 1 :(得分:1)
您可以使用.Count(condition)==1
因此,在您的情况下使用带有条件的断言:
list.Count(t => t.GetType() == typeof(foo)) == 1
答案 2 :(得分:0)
回到五年后,NUnit现在有了一个更好的解决方案!
Assert.That(list, Has.Exactly.One.TypeOf<foo>());