上一篇文章, 我在单元测试的时候, 把依赖项设为null:
?
然后便出现了NullReferenceException, 导致测试无法正常运行....首先应该做的是在TransferApproval的构造函数里判断参数是否为null, 如果为null的话应该抛出ArgumentNullException:
?
这是更恰当的异常....这样的话, 在测试的时候, 抛出的就是ArgumentNullException了, 它可以更恰当的表达程序出现的问题:
?
现在我们可以使用mock版本的依赖项来代替null了:
?...让我们来调试一下这个测试, 我在TransferApproval类里面设置一个端点, 查看一下这个mock依赖项的方法返回值:
?
然后调试测试:
?
跑到断点
?...MockBehavior是一个枚举, 它有三个值:
MockBehavior.Strict, 如果mock对象上的方法没有被预先设置好, 那么测试中调用该方法的时候就会抛出异常.