junit | main中的自动装配组件为空

时间:2019-02-28 15:19:36

标签: spring junit autowired spring-config

我在src / main / java中定义了一个类:

Class A{
    @Autowired 
    B b; 
    public void method1() {}
} 

对应的测试类是:

Class ATest {
    A a; 
    @Test
    public void method1Test() {}
}
当对ATest进行单元测试时,

B为空。 (作为junit测试运行)。

我只有spring-context库,没有spring boot应用程序。此外,我定义了@ComponentScan(basePackage="com"),并且类A在同一包中。

请让我知道如何在这种情况下进行单元测试。

3 个答案:

答案 0 :(得分:0)

对于Spring依赖项,我添加到测试类@Spy@Autowired

@Spy
@Autowired
private B b;
测试B

A可用

答案 1 :(得分:0)

为什么要在资源目录中定义不是单元测试的类?

答案 2 :(得分:0)

Mockito提供了在真实对象上创建间谍的选项。调用spy时,将调用真实对象的实际方法。

@RunWith(MockitoJUnitRunner.class)
Class ATest {

    @Syp
    B b;

    @Test
    public void method1Test() {}
}