转会审批方法里也要修改:
?
而在单元测试的方法里, 肯定是报错的:
?
按照正常的思路, 我们可能会这样做:
?
就是从内到外一层一层的mock.
这么做是没问题的, 测试也会通过:
?...为属性设置默认值
但是, 问题来了, 我还有一些其它的单元测试方法, 它们也需要用到这个属性, 现在它们的状态是:
?...这样设置之后, 它会返回属性类型的默认值, 因为我没有设定返回值.
虽然测试依然不通过, 这是因为逻辑上的问题, 而不会抛出异常:
?
针对这种情况, 还有一种更好的办法....但是DefaultValue这个属性只对引用类型起作用(对值类型不起作用), 像这种递归的mock, 它会递归的创建所需的引用类型, 但是最后的IsAvailable这个值类型是不起作用的....因为最后一层是bool类型的, 是值类型, 所以上面的设置不起作用, 返回的是false. 所以测试没通过.
那我就把它改成string类型好了:
?
审批方法:
?
然后再调试测试:
?