我可以使用Mockito来捕获传递给该HttpServletResponse#sendError()
方法的内容吗?我不知道该怎么做。
问问题
3144 次
3 回答
5
您应该使用 Mockito 上的验证方法来执行此操作。不过,通常模拟 HttpResponse 并不是一种愉快的体验。
mockResponse = mock(HttpSR→);
//…
verify(mockResponse, times(1)).sendError(..);
作为参数,sendError
您可以传递模拟匹配器,它可以对您需要的参数进行任何检查。
于 2010-06-14T17:49:31.697 回答
3
我认为发布者想知道如何检索传递给该方法的参数。您可以使用:
// given
HttpServletResponse response = mock(HttpServletResponse.class);
ArgumentCaptor<Integer> intArg = ArgumentCaptor.forClass(Integer.class);
ArgumentCaptor<String> stringArg = ArgumentCaptor.forClass(String.class);
doNothing().when(response).sendError(intArg.capture(), stringArg.capture());
// when (do your test here)
response.sendError(404, "Not found");
// then (do your assertions here, I just print out the values)
System.out.println(intArg.getValue());
System.err.println(stringArg.getValue());
于 2014-10-22T08:55:28.013 回答
0
你可能想看看Mockito 间谍(第 13 章)。对于无法模拟的对象,有时可以检查它们的内部结构并以这种方式存根某些方法。
如果您可以发布一些示例代码,我可以看看它。
于 2010-06-11T16:04:50.003 回答