控制台输出也是可以测试的,以前我一直以为需要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());
}
}
网友评论