首页 > 解决方案 > 使用模拟嵌套 Bean 进行 Spring Boot 1.3 测试

问题描述

我正在尝试编写一个集成测试来测试具有嵌套依赖注入的类 A。所以我最终想注入 C 类的模拟。

我知道 Spring Boot 1.4 中可用的注释 @MockBean 但我的硬性要求是带有 Java 7 的 Spring Boot 1.3。
有人可以帮助我如何模拟嵌套依赖项吗?

public class A {
    @Autowired
    private B b;

    private void run() {
        b.run();
    }
}

public class B {
    @Autowired
    private C c;

    private void run() {
        c.run();
    }
}

public class C {
    private void run() {
        //some action
    }
}

public class Test {
    @Autowired
    private A a;

    @Test
    private void runTest() {
        a.run();
    }
}

标签: javaspringspring-bootdependency-injection

解决方案


在 Test 上下文中创建一个相同类型的 Mock bean 并将其标记为 Primary。


推荐阅读