【发布时间】:2018-09-25 21:08:45
【问题描述】:
ServiceInstance.createInstance 应该在对下面的 URL 进行 PUT 调用时被调用。为了能够测试发送 PUT 请求时是否调用了正确的方法,我想模拟调用了该方法的对象(ServiceInstance)。但是,模拟不会覆盖真实实例。我在这个设置中缺少什么?
@RunWith(SpringRunner.class)
@SpringBootTest(classes = { MySpringBootApplication.class })
@SpyBean(ServiceInstance.class)
public class ServiceTest {
@Autowired
ServiceInstance serviceInstance;
@BeforeClass
public static void setUp() {
SpringApplication.run(MySpringBootApplication.class, new String[] {});
}
@Test
public void sendPutRequest() throws JSONException, ClientProtocolException, IOException {
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpPut putRequest = new HttpPut("http://localhost:8080/v2/instances/1");
//.....
httpClient.execute(putRequest);
Mockito.verify(serviceInstance, Mockito.times(1)).createInstance(Mockito.any());
}
}
【问题讨论】:
标签: java testing mocking mockito spy