请提供帮助我模拟java InputStream对象的指针.这是我希望Mock的代码行:
InputStreamReader inputData = new InputStreamReader(System.in);
bufferdReader = new BufferedReader(inputData);
bufferdReader.readLine();
Run Code Online (Sandbox Code Playgroud)
Eri*_*ric 90
您可以使用commons-io创建一些存根输入流:
InputStream stubInputStream =
IOUtils.toInputStream("some test data for my input stream", "UTF-8");
Run Code Online (Sandbox Code Playgroud)
pap*_*pap 79
您可以使用a ByteArrayInputStream并将其填入测试数据中.
@ Brad的评论示例:
InputStream anyInputStream = new ByteArrayInputStream("test data".getBytes());
Run Code Online (Sandbox Code Playgroud)
Bor*_*vić 45
BufferedReader bufferedReader = org.mockito.Mockito.mock(BufferedReader.class);
when(bufferedReader.readLine())
.thenReturn("first line")
.thenReturn("second line");
org.junit.Assert.when(new Client(bufferedReader).parseLine())
.thenEquals(IsEqual.equalTo("first line"));
Run Code Online (Sandbox Code Playgroud)
Joh*_*all 16
我不同意这个问题的选定答案.像Mockito这样的模拟框架很好,但是当标准的java api可用时你可以考虑使用它.
即
BufferedReader reader = new BufferedReader(new StringReader("some string"));
Run Code Online (Sandbox Code Playgroud)
为什么在可以使用具有其所有状态和行为的真实对象时,在测试类中使用Mock对象?
要了解有关其工作原理的更多信息,您可以查看"装饰器"设计模式.
| 归档时间: |
|
| 查看次数: |
74751 次 |
| 最近记录: |