模拟 InputStream、InputStreamReader 和 BufferedReader
Mocking InputStream, InputStreamReader and BufferedReader
我有以下代码:
InputStream inputStream = sftpConfig.getSftpChannel().get(fileAbsolutePath);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)))
String line = bufferedReader.readLine();
我想要的只是模拟这些行,并且在bufferedReader.readLine()
中灵活,因为我将根据行有几个测试用例(文件为空且行为空的情况,a我只得到一行的情况,我得到几行的情况等等)。
注意:我正在使用 jsch
库来访问 FTP 服务器上的文件,因此方法 getSftpChannel()
具有 ChannelSftp
作为 return 类型,并且get(fileAbsolutePath)
有 InputStream
.
我正在使用 junit 4.12
和 mockito 3.1.0
提前致谢!
实例化 ByteArrayInputStream 实例而不是模拟它并用您需要的数据填充它可能更容易,例如
var stream = new ByteArrayInputStream("hello".getBytes());
你可以用它代替你的 InputStream。
我有以下代码:
InputStream inputStream = sftpConfig.getSftpChannel().get(fileAbsolutePath);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)))
String line = bufferedReader.readLine();
我想要的只是模拟这些行,并且在bufferedReader.readLine()
中灵活,因为我将根据行有几个测试用例(文件为空且行为空的情况,a我只得到一行的情况,我得到几行的情况等等)。
注意:我正在使用 jsch
库来访问 FTP 服务器上的文件,因此方法 getSftpChannel()
具有 ChannelSftp
作为 return 类型,并且get(fileAbsolutePath)
有 InputStream
.
我正在使用 junit 4.12
和 mockito 3.1.0
提前致谢!
实例化 ByteArrayInputStream 实例而不是模拟它并用您需要的数据填充它可能更容易,例如
var stream = new ByteArrayInputStream("hello".getBytes());
你可以用它代替你的 InputStream。