Ron*_*rby 6 tdd unit-testing moq mocking testdrivendesign
嘲笑的目的是什么?
我一直在关注一些使用NUnit进行测试和使用Moq进行模拟的ASP.NET MVC教程.虽然我对它的嘲弄部分有点不清楚.
phi*_*ant 16
模拟的目的是将被测试的类与其他类隔离开来.
这在课时很有用:
它还可以更容易地测试错误条件,因为您构建模拟对象以便返回错误,抛出异常...
模拟可以记录它是如何被调用的(函数调用顺序,参数),这可以通过测试来验证.编辑:例如:您正在测试的方法发送消息,例如IPC.模拟对象的方法可以记录它被调用的次数,即他接收的参数(即要发送的消息).然后测试可以询问模拟对象并断言发送的消息数量,消息的内容......同样,模拟对象可以记录在日志字符串中调用的方法,测试可以检索该字符串并断言在上面.
不要滥用模拟对象:测试行为而不是实现,否则单元测试将与代码紧密耦合,并且脆弱(在重构时中断).
模拟可以手动编码,也可以由模拟框架生成.
Mocking允许您将测试中的类与其依赖项隔离开来.通常,您为要测试的类的每个依赖项创建一个模拟,并设置模拟以返回预期值.然后,您将模拟提供给正在测试的类,而不是您所测试的类所依赖的类的实际副本.然后,您可以使用模拟框架检查是否对模拟对象进行了预期的调用,以确保您的测试类正常运行.
归档时间: |
|
查看次数: |
3110 次 |
最近记录: |