控制臺輸出也是可以測試的,以前我一直以為需要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());
}
}