从println读取模拟的ServletOutputStream

时间:2012-01-10 21:08:19

标签: java unit-testing junit mocking mockito

我有一个HttpServlet,我正在尝试编写测试并模拟ServletOutputStream:ServletOutputStream outputStream = mock(ServletOutputStream.class);。我需要在使用println的servlet中获取写入outputStream的内容。即,在servlet中,我的代码如下:

ServletOutputStream out = response.getOutpuStream();
out.println("foo");

所以,我想测试“foo”。我试图说when(outputStream.println()).then...,但这不起作用,因为println()是一个void方法。我还调查了HttpServletResponseWrappers,但一直无法在那里找到解决方案。想法?我正在使用Mockito。

1 个答案:

答案 0 :(得分:2)

如果你想查看是否将“foo”传递给println方法,你可以这样做:

verify(outputStream).println(eq("foo"));