Testing software: fake vs stub
有很多关于存根和模拟的文章,但我看不出假和存根之间的真正区别。 谁能对它有所启发?
我假设你指的是Meszaros引入的术语。 Martin Fowler也经常提到他们。我认为他在那篇文章中很好地解释了这种差异。
不过,我会用自己的话再试一次:)
虚假比存根更接近现实世界的实现。存根基本上包含对预期请求的硬编码响应;它们通常用于单元测试,但除了预编程之外,它们无法处理输入。
假货有一个更真实的实现,比如可以保留的某种状态。它们可用于系统测试以及单元测试目的,但由于某些限制或质量要求,它们不适用于生产用途。
假冒与它取代的东西具有相同的行为。
存根具有一组"固定"的"罐装"响应,这些响应特定于您的测试。
模拟对所做的调用有一系列期望。如果不满足这些期望,则测试失败。
所有这些都是相似的,因为它们取代了在测试用途下编码的生产合作者。
这可能有所帮助
- http://xunitpatterns.com/Mocks,%20Fakes,%20Stubs%20and%20Dummies.html
- http://hamletdarcy.blogspot.com/2007/10/mocks-and-stubs-arent-spies.html