上一篇文章, 我在单元测试的时候, 把依赖项设为null:
?
然后便出现了NullReferenceException, 导致测试无法正常运行....如果不对IsHealthy()方法进行任何设定的情况下, 方法会返回bool的默认值false, 这种就是loose(宽松) Mock....下面我把一个测试改为Strict Mock, 并取消了对IsHealthy()方法的设置:
?
而测试时会抛出MockException:
?
在对方法进行设置后, 测试就会通过:
?
?...可以感觉到:
Loose Mock, 可以少写一些设定代码, 可以返回默认值, 不易让测试中断
Strict Mock, 需要写跟多的设定代码, 每个被调用的方法都需要进行设定, 所以也更容易让测试中断...这次使用的是带有out参数的IsHealthy()方法.
建立一个测试方法, 并设定这个带有out参数的方法:
?
很简单, 测试会通过:
?