我有一个Mocking Framework Mockito的问题。我想测试用户在控制台中输入的输入。没有嘲笑它工作得很好,但它与我不知道如何从函数得到的输入在控制台中的返回值。JUnit用Mockito测试用户输入
没有的Mockito:
读取输入法
public int readUserInput() {
BufferedReader console = new BufferedReader(new InputStreamReader(
System.in));
return Integer.parseInt(console.readLine());
...
}
测试方法:
public class TestClass {
Controller contr = new Controller();
@Test
public void testUserInput() {
System.setIn(new ByteArrayInputStream("1".getBytes()));
assertEquals(1, contr.readUserInput());
System.setIn(System.in);
}
}
但现在如何编写一个带了的Mockito测试。我尝试了几种方法,但都没有工作。我得到的所有时间都是0而不是我在ByteArrayInputStream
中写的数字。
在此先感谢!
谢谢,但你可以请给我更多的代码来了解你做这件事的方式。 – mbauer 2014-11-24 13:42:29
你在做@Mock BufferedReader mockedBufferedReader; //这会模拟你的BufferedReader,并在你的测试用例中使用上面的代码模拟API。 – ppuskar 2014-11-24 13:45:43
或使用本教程刷新Mockito知识:http://www.vogella.com/tutorials/Mockito/article.html – ppuskar 2014-11-24 13:47:49