对于模拟对象,java Mockito rest模板始终为空
模拟包含rest模板的类时,rest模板始终为空,我的代码为:
public class ClassA {
private final RestTemplate restTemplate;
public ClassA(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public byte[] method(String url) {
// do some restTemplate.getForObject()
}
}
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Application.class})
public class TestClass {
@Mock
private ClassA classa
public void test1() {
Mockito.doReturn(byeArray).when(classA).method("url");
}
}
在检查线路时,请注意。多雷图恩(拜耳雷)。当(classA)。方法(“url”);我注意到对象classA包含rest模板,但它是空的
# 1 楼答案
模拟是在依赖项上完成的,而不是在被测试的类上。还有一些方法可以在测试方法下的类上进行模拟,这可以使用
Spy
完成在你目前的情况下,应该是这样的
测试
ClassA
下的类应该用@InjectMocks
注释,依赖项应该用@Mock
模拟另外需要注意的是,在您的测试用例中,您应该调用需要测试的
ClassA
方法