stackoverflow上面一个回答,但是感觉不好用https://stackoverflow.com/questions/1647907/junit-how-to-simulate-system-in-testing
模拟输出
方法一
定义一个private PrintStream printStream;
待测试函数能够接受一个PrintStream类型的输入
printStream = mock(PrintStream.class);
//运行待测试的method
verify(printStream).println("expect String");
模拟输入
方法一【无敌好用】
import org.junit.contrib.java.lang.system.TextFromStandardInputStream;
import static org.junit.contrib.java.lang.system.TextFromStandardInputStream.emptyStandardInputStream;
@Rule
public final TextFromStandardInputStream systemInMock
= emptyStandardInputStream();
@Test
public void test01(){
systemInMock.provideLines("the input String");
//运行待测试的method
}
jar包导入方法连接https://stefanbirkner.github.io/system-rules/download.html
网友评论