何时不使用集成测试

时间:2009-11-12 19:23:50

标签: testing tdd integration-testing

我正在编写一个使用第三方库来实例化虚拟机并对虚拟机进行操作的应用程序。

起初我正在为应用程序的每个功能编写集成测试。但他们发现这些测试并没有真正帮助,因为我的环境必须处于一个确定的状态,这使得测试越来越难以编写。我决定只进行单位和验收测试。

所以,我的问题......是否可以有方法或线索注意何时不使用集成测试? (或者我错了,在所有情况下都应该写出来)

3 个答案:

答案 0 :(得分:6)

当你不打算将你的应用程序实际挂钩到任何“真实”的东西时;没有真正的容器,数据库,资源或实际服务。这就是集成测试应该验证的内容;一切正常。

答案 1 :(得分:1)

集成测试很适合测试具有明确定义的输入和输出的完整系统,这些输入和输出不太可能发生变化。如果您的预期输入/输出经常发生变化,那么维护测试可能会成为维护挑战,或者更糟糕的是,由于升级集成测试可能需要大量工作,您可能会选择改进接口。

答案 2 :(得分:1)

简单明了的规则是:在集成测试中测试是什么因为集成而破坏了 并在单元测试中孤立地测试其余

你甚至可以hate integration tests。为只接受一个整数参数的函数编写单元测试很难。所有可能的状态组合(内部和外部(时间,外部系统))和输入可以使集成测试几乎不可能(对于一个体面的应用程序。)