具有javax.ws.rs.core.Response和断言的模拟方法

时间:2019-04-09 06:46:40

标签: java unit-testing mocking response testcase

我有一个主要方法来实现/调用另一个方法。我正在为main方法编写一个测试用例,其中必须模拟调用方法的响应。

public String getAccount(String add, String sub) {
...
Response r = getService(add, sub);
...
}

public Response getName(String add, String sub) {
...
Response r = WebTarget.path(pathString).queryParam("aaa", "xxxx").queryParam("byId", add)
            .request().header("accept", "json")
            .header("Authorization",token).get();
return r;
}

我正在尝试在此处编写测试用例,以便模拟getName的响应以返回非200响应。

@Test
public void testGetAccount(){
when(getName).thenReturn(...);//How do I mock this?
String result = getAccount(anyString, anyString);
assertNotEqual(Https.Ok);
}

如何在此处模拟getName方法的响应?

1 个答案:

答案 0 :(得分:0)

尝试:

 MyResponseObject myResponseObject= MyResponseObject(); 
    Response 
     response=Response.status(Response.Status.OK).entity(myResponseObject).build(); 
     when(getName(anyString, anyString)).thenReturn(response);