我嘲笑了几个依赖项并定义了它们的行为.我不希望在我的依赖项上调用真正的方法--这就是嘲笑的全部意义所在.
我的测试是:
@Test
public void should_Create_MultiDoc_Ticket() throws URISyntaxException{
DataTransformationService transformationService = Mockito.mock(DataTransformationService.class);
JSONObject samplePolicyData = createSamplePolicyData("Sample Multidoc Template");
InteractiveRequest sampleInteractiveRequest = createSampleInteractiveRequest();
when(transformationService.transformMultiDocData(createSampleInteractiveData())).thenReturn(createSampleInteractiveData());
String ticketId = interactiveTicketService.createTicket(samplePolicyData.toString());
assertThat(ticketId).isEqualTo("sampleTicketId");
verify(transformationService, times(1)).transformMultiDocData(createSampleInteractiveData());
}
具体地说,real transformationService.transformMultiDocData()
方法正在被调用,而它不应该被调用.
运行测试时出现错误:
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://us-data-transformation-sample/template": us-data-transformation-sample; nested exception is java.net.UnknownHostException: us-data-transformation-sample
at com.lmig.us.services.DataTransformationService.transformMultiDocData(DataTransformationService.java:114)
at com.lmig.us.services.InteractiveTicketService.createTicket(InteractiveTicketService.java:56)
at com.lmig.us.services.InteractiveTicketServiceTest$createTicket.should_Create_MultiDoc_Ticket(InteractiveTicketServiceTest.java:311)
... 82 more
有人知道这是怎么回事吗?