【发布时间】:2010-03-16 23:11:34
【问题描述】:
关于单元测试的文章很多,但我几乎找不到任何关于集成测试的书籍/博客?您能否建议我阅读有关此主题的内容?
在进行集成测试时要编写哪些测试? 什么是好的集成测试? 等等等等
谢谢
【问题讨论】:
标签: language-agnostic testing integration-testing
关于单元测试的文章很多,但我几乎找不到任何关于集成测试的书籍/博客?您能否建议我阅读有关此主题的内容?
在进行集成测试时要编写哪些测试? 什么是好的集成测试? 等等等等
谢谢
【问题讨论】:
标签: language-agnostic testing integration-testing
任何由 JUnit 和 SUnit 之父 Kent Beck 编写的东西都是一个很好的起点(通常用于单元测试/测试编写)。我假设您不是指“持续集成”,这是一种基于流程的构建方法(非常酷,当您开始工作时)。
根据我自己的经验,集成测试看起来与常规单元测试非常相似,只是处于更高的级别。更多模拟对象。更多状态初始化。
我相信集成测试就像洋葱。它们有层次。
有些人更喜欢“集成”他们的所有组件,并将“整个”产品作为“集成”测试进行测试。你当然可以这样做,但我更喜欢渐进式的方法。如果您从低级别开始,然后在更高的组合层继续测试,那么您将实现集成测试。
【讨论】:
也许通常很难找到有关集成测试的信息,因为它更具体地针对实际应用程序及其业务用途。不过,这是我的看法。
适用于单元测试的内容也适用于集成测试:模块应该有一种简单的方法来模拟其外部输入(文件、数据库、时间...),以便可以与其他单元测试一起测试它们.
但是我发现非常有用,至少对于面向数据的应用程序而言,它能够创建应用程序的“控制台”版本,该版本接受完全确定其状态的输入文件(不依赖于数据库、网络资源...),并将结果输出为另一个文件。例如,可以维护一对输入/预期结果文件,并测试回归作为夜间构建的一部分。拥有这个控制台版本可以更轻松地编写脚本,并使调试变得异常容易,因为可以依赖一个非常稳定的环境,在那里很容易重现错误并运行调试器。
【讨论】:
J.B. Rainsberger 写过关于他们的文章。这是 InfoQ 文章的链接,其中包含更多信息。
http://www.infoq.com/news/2009/04/jbrains-integration-test-scam
【讨论】: