首先应该做的是在TransferApproval的构造函数里判断参数是否为null, 如果为null的话应该抛出ArgumentNullException:
?
这是更恰当的异常....而由于Moq对依赖项进行了包装, 所以要获得实际的mock依赖项, 我们需要使用mockExamination.Object属性. 而这个属性的类型就是IPhysicalExamination....这里用到了It这个类, 在Moq里, It这个类是用来做参数匹配的, it 就是"它"的意思, 它就代表需要被匹配的参数. ...Moq的建议是: 大多数情况下应该使用Loose Mock, 只有特殊需要的时候才去使用Strict Mock.
out参数
修改一下TransferApproval类的转会审批方法:
?...这次使用的是带有out参数的IsHealthy()方法.
建立一个测试方法, 并设定这个带有out参数的方法:
?
很简单, 测试会通过:
?