因此,我正在尝试测试我的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);

10-05 23:11
查看更多