Test Doubles 理解
自动化测试中,我们常会使用一些经过简化的,行为与表现类似于生产环境下的对象的复制品。
引入这样的复制品能够降低构建测试用例的复杂度,允许我们独立而解耦地测试某个模块,不再担心受到系统中其他部分的影响;
这类型对象也就是所谓的 Test Double。
Fakes
- Fake 是那些包含了生产环境下具体实现的简化版本的对象。
Stubs
- Stub 代指那些包含了预定义好的数据并且在测试时返回给调用者的对象。
- Stub 常被用于我们不希望返回真实数据或者造成其他副作用的场景。
command query separation
query 只是查询,无副作用,不改变状态 : Stubs
command 操作的同时会改变状态 : Mocks
Mocks
参考文章
https://segmentfault.com/a/1190000009443132 > http://xunitpatterns.com/Test%20Double.html > https://martinfowler.com/articles/mocksArentStubs.html
测试
- 减少不必要的测试细节
- 关注用户想要什么,就尽可能去测试什么