美文网首页
Junit单元测试之模拟输入输出

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

作者: _a_monkey_b_ | 来源:发表于2019-08-13 17:19 被阅读0次

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

相关文章

网友评论

      本文标题:Junit单元测试之模拟输入输出

      本文链接:https://www.haomeiwen.com/subject/qhpbjctx.html