也许我的问题对某人来说听起来很傻,但无论如何:为什么我们需要测试假代码?
我读了this book,我无法理解为什么我们需要测试我们自己初始化的单位,包括返回值和e.t.c.如果我使用假对象,它将始终返回我想要的(如果我使用AAA模式)并且如果我的真实代码的逻辑将改变并且将是错误的,则使用模拟或存根的单元测试不会显示出来。我错了吗?
或者单元测试只需要记录如何使用类或库?
答案 0 :(得分:3)
模拟的重点是不来模拟你要测试的对象,但要模拟被测对象所依赖的对象,例如:
TestRunner - > ObjectUnderTest - > MockedObject1..n
在这里测试ObjectUnderTest的行为,它需要一些其他对象才能工作。后面的对象不受当前测试的约束,因此对此测试实例进行了模拟。