我可以使用Mockito来捕获传递给HttpServletResponse#sendError()
方法的内容吗?我无法弄清楚如何做到这一点。
答案 0 :(得分:4)
您应该在Mockito上使用验证方法来执行此操作。通常嘲笑HttpResponse并不是一种愉快的体验。
mockResponse = mock(HttpSR→);
//…
verify(mockResponse, times(1)).sendError(..);
作为sendError
的参数,您可以传递mockito匹配器,它可以检查您需要的参数。
答案 1 :(得分:2)
我认为海报想知道如何检索传递给方法的参数。您可以使用:
// 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());
答案 2 :(得分:0)
您可能需要查看Mockito spies(第13章)。对于无法模拟的对象,有时可以检查它们的内部结构并以这种方式存根某些方法。
如果您可以发布一些示例代码,我可以看看它。