2013-04-26 118 views
0

我在读“.NET的依赖注入”,以及本书中的一些示例,它引导我提出了有关单元测试的问题。
单元测试如何知道何时passfail
不知道为什么,但我一直认为你需要断言某些东西,如果断言是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
单元测试框架使用什么标准来确定输出是否为passfail

+0

当您错过了错误并且失败时,您的测试基础设施被破坏时,它会通过。 – 2013-04-30 09:31:13

回答

4

如果引发异常,则单元测试失败。

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

2

我猜可能Verify方法抛出一个异常,如果它不能验证,这会导致单元测试失败。如果没有例外,那就意味着它通过了。

相关问题