我在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在同一包中。
请让我知道如何在这种情况下进行单元测试。
答案 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() {}
}