我正在嘗試爲某些寫入套接字的通信代碼編寫一些單元測試。在測試過程中,我想讓我的通信庫寫入一個字符串,然後我可以將字符串的內容與我期望寫入的內容進行比較。Perl的StringWriter/StringIO
在Java中我會使用的東西就像一個StringWriter
讓我的通信代碼可以寫入標準Writer
接口,並在年底我可以要求所有被寫入的數據。
有沒有相當於這個或Python的StringIO for Perl?像這樣的東西已經內置?
我正在嘗試爲某些寫入套接字的通信代碼編寫一些單元測試。在測試過程中,我想讓我的通信庫寫入一個字符串,然後我可以將字符串的內容與我期望寫入的內容進行比較。Perl的StringWriter/StringIO
在Java中我會使用的東西就像一個StringWriter
讓我的通信代碼可以寫入標準Writer
接口,並在年底我可以要求所有被寫入的數據。
有沒有相當於這個或Python的StringIO for Perl?像這樣的東西已經內置?
是的。從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做類似的事情。
適用於從字符串中讀取,只需將'>'更改爲'<'即可。 –