首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PowerMock:如何监视System.out.println?

PowerMock:如何监视System.out.println?
EN

Stack Overflow用户
提问于 2019-02-06 21:09:01
回答 1查看 300关注 0票数 1

假设我有以下类:

代码语言:javascript
复制
class MyClass { 
    public MyClass(){
    }
    public void hello() {
       System.out.println("hello");
    }
}

我想测试'hello‘方法:

代码语言:javascript
复制
@Test
public void testHello() {
    MyClass mc = new MyClass();
    mc.hello();
}

现在,我想要侦测System.out.println并确保此方法是以"hello“作为参数调用的。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-06 21:23:37

System.out实际上是PrintStream的一个实例,所以我的方法是创建该类的模拟,并使用System.setOut方法将输出定向到该类:

代码语言:javascript
复制
PrintStream outMock = Mockito.mock(PrintStream.class);
System.setOut(outMock);
System.out.println("Hello");
Mockito.verify(outMock).println("Hello");

记得在测试后恢复以前的PrintStream实例,最好是在finally子句中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54554419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档