因此,我正在尝试测试我的POST REST METHOD,该方法使用Mokcito的一个参数:
@Test
public testRestAdd(){
RESTResource mockResource = Mockito.mock(RESTResource.class);
String goodInput = "good input";
Response mockOutput = null; //just for testing
Mockito.when(RESTResource.addCustomer(Customer.class)).thenReturn(mockOutput);
}
REST调用为:
@POST
@Path("Add")
@Produces({MediaType.APPLICATION_JSON})
@Consumes(MediaType.APPLICATION_JSON)
public Response addCustomer(final Customer CustomerTemp) throws Throwable {
//Code to add Customer
}
我在Mockito.when行上收到一条错误消息,提示我为addCustomer输入错误。有人可以告诉我我在做什么错吗?
最佳答案
在这一行:
Mockito.when(RESTResource.addCustomer(Customer.class)).thenReturn(mockOutput);
您调用传递Customer类的addCustomer,而addCustomer方法应接收一个Customer对象。如果要为所有Cusotmer实例返回模拟,请使用Mockito的isA Matcher,如下所示:
Mockito.when(RESTResource.addCustomer(org.mockito.Matchers.isA(Customer.class))).thenReturn(mockOutput);
或者,如果您不太在意addCustomer中收到的哪个客户,则可以使用:
Mockito.when(RESTResource.addCustomer(org.mockito.Matchers.any())).thenReturn(mockOutput);