这里的自动化集成测试有什么意义?

时间:2009-10-27 22:04:41

标签: integration-testing

是的,在我输入=)后,我确实在上面的方框中阅读了“相关问题”。他们仍然没有像我想的那样帮助我,因为我明白两者之间的区别是什么 - 我只是不确定在我的具体情况下是否需要它。

所以我有一个完全单元测试(简单和小)的应用程序。我有一个'Job'类,带有一个公共Run()方法+ ctors,它接受Excel电子表格作为参数,提取数据,检查数据库以查看我们是否已经拥有该数据,如果没有,则发出请求第三方供应商,接受该响应,将其放入数据库,然后完成作业(db update again)

我有IConnection与供应商交谈,IParser解析excel /供应商文件,IDataAccess进行所有数据库访问。我的职业课很精简&虽然实际上它正在做所有逻辑,它实际上只是将数据链接到复合对象......

所以所有的复合对象都是自己进行单元测试的,包括DAL,甚至Job类上的Run()方法都是使用模拟对所有可能的代码路径进行单元测试的。

那么 - 我是否需要在此时进行任何类型的集成测试,然后运行应用程序以查看它是否有效?使用模拟的Run()方法的测试是否考虑了我的集成测试?或者我的集成测试应该使用真实实例而不是模拟,然后根据已知的Excel电子表格输入在最后断言数据库值?但这就是我所有的单元测试都在做的事情(只是在单独的地方,而模拟的Run测试确保那些地方'连接')!遵循DRY方法,我认为不需要在这里进行集成测试......

我错过了一些明显的家伙吗?非常感谢...

1 个答案:

答案 0 :(得分:1)

我认为您最不想要的是外部系统的实际行为。虽然您的单元测试肯定可以断言各个步骤执行预期的操作,但它们几乎无法揭示访问外部系统时可能出现的运行时问题。您的外部系统也可能包含您不了解的数据。

所以是的,我认为你需要两者。在两个测试中,您不一定需要同样详细。有时您可以让集成测试成为冒烟测试