集成测试,无需模拟与其他应用程序的连接

时间:2013-03-09 13:39:51

标签: spring integration-testing

我有两个申请。我为其中一个应用程序进行了集成单元测试,但调用其他应用程序的服务被模拟(而不是注入真实服务,我注入另一个被模拟的服务)。

是否有可能与其他应用程序建立真正的连接而无需模拟它。

一个简单的例子非常有帮助。

提前致谢!

1 个答案:

答案 0 :(得分:0)

只需注入真实服务并进行集成测试。问题是要确保注入所有需要注入的东西。让我们把你的服务叫做foo和bar,其中foo取决于吧。如果bar依赖于应用程序服务器中的某些内容,那么在单元期间启动它可能会出现问题,因为您没有在应用程序服务器中运行该应用程序。

集成测试很重要且很有价值,但需要仔细考虑设置。我在我的应用程序中设法集成测试的方法是使用弹簧配置文件来分离配置组合。例如,我有名为。

的个人资料
  • 生产
  • 发展
  • 容器
  • 独立

通过这种方式,您可以使用正确的配置文件启动测试,该配置文件会像这样设置所有正确的bean。

@ActiveProfile(profiles={"deveolpment","standalone"})
@RunWith ... etc other spring annotations to configure a test 
public class SomeJunitTest {
}

使用配置文件可以很容易地对每个测试配置的bean集进行细粒度控制。

同样对于整合测试,我发现TestNG更容易使用JUnit,因为它具有使编写集成测试更容易的功能。