【问题标题】:Can I selectively disable Spring Data repositories for testing?我可以选择性地禁用 Spring Data 存储库进行测试吗?
【发布时间】:2014-11-12 16:12:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: java spring integration-testing spring-data


    【解决方案1】:

    基本上,如果我理解正确,您的 MongoDB 存储库有两种设置,mocklive。因此,您想要运行集成测试并控制正在使用的存储库。我建议使用“Spring Profiles”。

    1. 创建一个简单的界面说MongodbCofig
    2. mocklive 创建两个配置类。确保这些类实现MongodbConfig。在两个类中设置配置文件 (@Profiles)。
    3. 稍后在运行测试之前激活所需的配置文件

    详细了解profile可以参考here

    【讨论】:

    • 配置文件不是我想要的,因为这是我试图避免的手动条件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 2015-06-23
    • 1970-01-01
    相关资源
    最近更新 更多