0

我正在阅读“.NET 的依赖注入”并阅读书中的一些示例,这让我想到了一个关于单元测试的问题。
单元测试如何知道何时passfail
不知道为什么,但我一直认为你需要 Assert 一些东西,如果 Assert is true,则单元测试通过,否则测试失败。

然而,情况似乎并非如此。查看下面的示例(使用NUnitand Moq)。

    [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

4

2 回答 2

4

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

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

于 2013-04-26T16:28:30.387 回答
2

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

于 2013-04-26T16:28:43.647 回答