Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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# NUnit:如何单元测试另一个单元测试失败?_C#_Nunit - Fatal编程技术网

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()
应该在其他单元测试中使用,所以我不想添加参数。顺便说一句,很多人认为应该只有