java如何测试控制台输出

2018-06-24  本文已影响8人  ThomasYoungK

控制台输出也是可以测试的,以前我一直以为需要mock来做,搞了好久也没搞定,后来看到了
《spring in action》中的做法,非常漂亮。
首先pom.xml中引入

<dependency>
        <groupId>com.github.stefanbirkner</groupId>
        <artifactId>system-rules</artifactId>
        <version>1.16.0</version>
</dependency>

然后使用SystemOutRule来获取输出:

import org.junit.contrib.java.lang.system.SystemOutRule;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;


public class CDPlayerTest {
    @Rule
    public final SystemOutRule log = new SystemOutRule().enableLog();
    @Test
    public void play() {
        System.out.println("ddd");
        Assert.assertEquals("ddd\n", log.getLog());
    }
}
上一篇 下一篇

猜你喜欢

热点阅读