Junit单元测试之模拟输入输出

2019-08-13  本文已影响0人  _a_monkey_b_

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

上一篇下一篇

猜你喜欢

热点阅读