我在我的项目中使用了更多的单元测试,并阅读了我可以在网上找到的所有信息,并且对很多术语感到困惑。因此,我可能在对话和谷歌搜索中错误地使用了这些术语。
有人可以概述所有单元测试术语,例如“假”类型以及测试类型(交互与集成)吗?
当谈到模拟、假货和存根时,人们实际上有几种不同的解释方式。我通常借马丁·福勒定义的含义 http://martinfowler.com/articles/mocksArentStubs.html#TheDifferenceBetweenMocksAndStubs:
- 存根对象提供有效的响应,但它是静态的——无论您传入什么输入,您总是会得到相同的响应。
- 假对象的行为与真实对象类似,但它们以更简单的方式进行操作——例如使用 Map 而不是真实数据库来存储数据的 DAO。
- 模拟对象用于模拟测试用例——它们验证在这些对象上调用了某些方法。
交互测试是一个通用术语,指的是确保对象之间的交互正确(确保调用预期的方法)的单元测试。这与状态(或经典)测试相反,状态(或经典)测试不关心方法中发生的情况,只要结果状态正确即可。我在上面链接的福勒的文章中对这些类型的测试进行了比较。
集成测试 http://en.wikipedia.org/wiki/Integration_testing实际上不是单元测试的一个方面,它是单元测试之上的一个级别。它需要不同的单元并验证它们是否可以正确地协同工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)