美文网首页
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