C# NUnit:如何单元测试另一个单元测试失败?
我有一个这样的包装C# NUnit:如何单元测试另一个单元测试失败?,c#,nunit,C#,Nunit,我有一个这样的包装 public static void ShouldContain(this string str, string subStr) { Assert.That(str, Contains.Substring(subStr)); } 可以对这个包装器进行单元测试吗? 通过添加TestCase属性,我能够对其进行单元测试: [TestCase("Hello world","world", Description=
public static void ShouldContain(this string str, string subStr)
{
Assert.That(str, Contains.Substring(subStr));
}
可以对这个包装器进行单元测试吗?
通过添加TestCase属性,我能够对其进行单元测试:
[TestCase("Hello world","world",
Description= "This test case will pass, because the Assert will be successful")]
public static void ShouldContain(this string str, string subStr)
{
Assert.That(str, Contains.Substring(subStr));
}
[TestCase("Hello world","world")]
[TestCase("Hello world", "bye", ExpectedException = typeof(AssertionException))]
public static void ShouldContain(this string str, string subStr)
{
Assert.That(str, Contains.Substring(subStr));
}
但是当我尝试另一个测试用例时,它是否定的,我的否定测试用例失败了,因为断言失败。我能够使用TestCase属性的
ExpectedException
参数对它进行测试:
[TestCase("Hello world","world",
Description= "This test case will pass, because the Assert will be successful")]
public static void ShouldContain(this string str, string subStr)
{
Assert.That(str, Contains.Substring(subStr));
}
[TestCase("Hello world","world")]
[TestCase("Hello world", "bye", ExpectedException = typeof(AssertionException))]
public static void ShouldContain(this string str, string subStr)
{
Assert.That(str, Contains.Substring(subStr));
}
只要每个测试只有一个断言,这种方法就可以很好地工作。如果你有不止一个,你就不再知道哪一个失败了。如果
str
是否应包含substr
,则可以添加第三个布尔参数,并在此基础上编写断言。@DMAN,谢谢您的评论。函数ShouldContain()
应该在其他单元测试中使用,所以我不想添加参数。顺便说一句,很多人认为应该只有