是否应在应用程序服务器中完成DAO的集成测试?

时间:2010-06-07 05:24:26

标签: java integration-testing dao application-server jta

我正在开发一个三层应用程序,并且正在为持久层中的DAO创建集成测试。当应用程序在Websphere或JBoss中运行时,我希望使用这些应用程序服务器的连接池和事务管理器。当应用程序在Tomcat或Jetty中运行时,我们将使用C3P0进行池化,使用Atomikos进行事务处理。

由于这些不同的子系统,DAO应该在完全配置的应用服务器环境中进行测试,还是应该在集成测试服务层时处理这些问题?目前我们计划使用非JTA(即资源本地)事务为DAO集成测试设置一个简单的JDBC数据源,因此不涉及应用程序服务器......但是这让我想知道我们不会发现的环境问题

2 个答案:

答案 0 :(得分:2)

除了使用单元测试测试每个模块外,integration test还应测试模块组。

我不想迂腐,但是在这个问题上,system test对QA的黑盒测试表示赞同。

对于较小的项目,这可能不可行

答案 1 :(得分:1)

我认为你已经走上了正确的思路。如果可能,您应该设置运行生产环境的持续集成服务器(例如Hudson)。这样你就可以使用Tomcat等进行高可信度的开发,针对你的本地设置运行测试,当你签入代码时,确保那些相同的测试是针对真实交易运行的。