单元测试如何知道何时通过或失败?

时间:2013-04-26 16:27:16

标签: unit-testing nunit

我正在阅读“.NET的依赖注入”,并继续阅读本书中的一些示例,它引出了一个关于单元测试的问题。
单元测试如何知道何时passfail
不知道为什么,但我总是假设您需要断言,如果Assert为true,则单元测试通过,否则测试失败。

但是,情况似乎并非如此。请看下面的示例(使用NUnitMoq)。

    [Test]
    public void Test_UserProvidedMessage()
    {
        Mock<IMessageWriter> m = new Mock<IMessageWriter>();

        Salutation s = new Salutation(m.Object);

        s.Exclaim("use this message silly");

        m.Verify(w => w.Write("use this message silly"));
    }

单位测试输出通过Mock.Verify方法控制。我明白,对于这个例子,但现在我质疑我对单元测试通过或失败的了解。

单元测试如何知道何时passfail
单元测试框架使用什么标准来确定输出是pass还是fail

2 个答案:

答案 0 :(得分:4)

如果单元测试抛出异常,则单元测试失败。

所有断言方法和模拟验证程序都会抛出特殊异常,提供有关失败的更多详细信息。

答案 1 :(得分:2)

我猜测Verify方法如果无法验证则可能抛出异常,这会导致单元测试失败。如果没有例外则意味着它已经过去了。