我有一個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