C# 表达式LINQ.Single()语句是显式NUnit测试
我有以下测试:C# 表达式LINQ.Single()语句是显式NUnit测试,c#,nunit,C#,Nunit,我有以下测试: [Test] public void ListContainsAnObjectOfTypeFoo() { list.Single(t => t.GetType() == typeof(foo)); } 这在测试抛出异常的上下文中“起作用”,如果该类型的项不存在或存在不止一次,则测试失败 然而,从语义上讲,它并不那么好。是否有任何方法可以使用显式NUnit断言测试Single()?我想知道CollectionAssert中是否有一个我看不到的秘密。不是单个,而是获取
[Test]
public void ListContainsAnObjectOfTypeFoo()
{
list.Single(t => t.GetType() == typeof(foo));
}
这在测试抛出异常的上下文中“起作用”,如果该类型的项不存在或存在不止一次,则测试失败
然而,从语义上讲,它并不那么好。是否有任何方法可以使用显式NUnit断言测试
Single()?我想知道CollectionAssert
中是否有一个我看不到的秘密。不是单个
,而是获取计数并将其与1
进行比较,如:
list.Count(t => t.GetType() == typeof(foo)) ! = 1
您可以使用.Count(条件)==1
因此,在您的案例中,使用带有以下条件的断言:
list.Count(t => t.GetType() == typeof(foo)) == 1
五年后再回到这一点,NUnit现在有了一个更好的解决方案
Assert.That(list,Has.justice.One.TypeOf());
当代码引发异常时,您将如何使用断言
?为什么不试试SingleOrDefault
并再次检查null
?