【发布时间】:2013-06-17 12:55:29
【问题描述】:
我正在尝试为写入套接字的一些通信代码编写一些单元测试。在测试期间,我想让我的通信库写入一个字符串,然后我可以将字符串的内容与我期望写入的内容进行比较。
在 Java 中,我会使用 StringWriter 之类的东西,这样我的通信代码就可以写入标准的 Writer 接口,最后我可以请求所有写入的数据。
对于 Perl 是否有相当于这个或 Python 的 StringIO 的?这样的东西已经内置了吗?
【问题讨论】:
我正在尝试为写入套接字的一些通信代码编写一些单元测试。在测试期间,我想让我的通信库写入一个字符串,然后我可以将字符串的内容与我期望写入的内容进行比较。
在 Java 中,我会使用 StringWriter 之类的东西,这样我的通信代码就可以写入标准的 Writer 接口,最后我可以请求所有写入的数据。
对于 Perl 是否有相当于这个或 Python 的 StringIO 的?这样的东西已经内置了吗?
【问题讨论】:
是的。从 v5.8 开始,您可以直接打开标量引用的输出句柄。
my $output;
open my $handle, '>', \$output;
print $handle "foo\n";
printf $handle "%d\n", 123;
close $handle;
print $output; # => "foo\n123\n"
【讨论】:
你可以用IO::Stringy做类似的事情。
【讨论】: