我可以有选择地禁用Spring Data存储库进行测试吗?

时间:2014-11-12 16:12:31

标签: java spring integration-testing spring-data

我正在为使用Spring Integration的系统编写模块级集成测试。我需要启动并运行集成计划,但在此级别仍然使用MockMvc和模拟的存储库接口,以确保我的所有映射,转换和消息路由都正确。

现在,我的模块级Enable配置使用@EnableMongoRepositories进行元注释,Spring测试运行器因为没有实时创建mongoTemplate而中止来自的存储库;模拟存储库不会阻止尝试创建真实存储库。

我知道我可以条件化包含@EnableMongoRepositories,但是如果我已经为它们提供了模拟,那么是否有更简单的方法告诉Spring Data不要创建存储库代理?

1 个答案:

答案 0 :(得分:0)

基本上,如果我理解正确,您可以为MongoDB存储库设置两种类型,mocklive。因此,您希望运行集成测试并控制正在使用的存储库。我建议使用" Spring Profiles"。

  1. 创建一个简单的界面MongodbCofig
  2. mocklive创建了两个配置类。确保这些类实现MongodbConfig。在两个类中设置配置文件(@Profiles)。
  3. 稍后在运行测试之前激活所需的配置文件
  4. 有关配置文件的详细信息,请参阅here