模拟输入流,InputStreamReader和BufferedReader

发布于 2025-01-24 09:02:45 字数 633 浏览 0 评论 0原文

我有以下代码:

InputStream inputStream = sftpConfig.getSftpChannel().get(fileAbsolutePath);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)))
String line = bufferedReader.readLine();

我想要的是模拟这些行,并在bufferedReader.readline()中灵活,因为我会根据行(这种情况文件为空,线为空,在这种情况下,我只得到一行,一个我得到多个等等的情况)。

注意:我正在使用jsch库来访问FTP服务器上的文件,因此方法getsftppchannel() chance> channelsftp作为返回类型,而get(fileabsolutepath)具有inputStream

我正在使用Junit 4.12Mockito 3.1.0

预先感谢!

I have the following piece of code :

InputStream inputStream = sftpConfig.getSftpChannel().get(fileAbsolutePath);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)))
String line = bufferedReader.readLine();

All I want is to mock these lines, and be flexible in bufferedReader.readLine(), because I will have several test cases depending on the lines (a case where the file is empty and the line is null, a case where I get only one line, a case where I get several etc.).

Note : I am using jsch library for accessing files on FTP servers, so the method getSftpChannel() has ChannelSftp as return type, and get(fileAbsolutePath) has InputStream.

I am using junit 4.12 and mockito 3.1.0

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏日落 2025-01-31 09:02:45

仅实例化bytearrayinputstream实例而不是嘲笑它并用所需的数据填充它可能会更容易,例如

var stream = new ByteArrayInputStream("hello".getBytes());

,您可以将其代替输入流。

It's probably easier just to instantiate ByteArrayInputStream instance instead of mocking it and filling it with data you need, e.g.

var stream = new ByteArrayInputStream("hello".getBytes());

and you can just use that in place of your InputStream.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文