Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表达式LINQ.Single()语句是显式NUnit测试_C#_Nunit - Fatal编程技术网

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