另外一个测试方法我也这么改一下, 然乎重新Build. Run All Tests:
?
还是红色的, 但现在是测试没通过, 并不是抛出异常.
测试没通过的意思就是期待值和实际返回值不符....可以看到这个Mock版本依赖项的IsHealthy()方法的返回值是false....这里用到了It这个类, 在Moq里, It这个类是用来做参数匹配的, it 就是"它"的意思, 它就代表需要被匹配的参数. ...MockBehavior.Loose, 即使方法没有被预先设置, 调用它的时候也不会抛出异常. 它会返回该方法返回类型的默认值....可以感觉到:
Loose Mock, 可以少写一些设定代码, 可以返回默认值, 不易让测试中断
Strict Mock, 需要写跟多的设定代码, 每个被调用的方法都需要进行设定, 所以也更容易让测试中断