すべてがインターフェイスを実装するクラスがたくさんあり、パラメーターの1つはStreamWriterです。
StreamWriterの内容を確認する必要があります。
テストサーバーにテキストファイルを書き込んだり、開いて内容を確認したりしないようにする方法を見つけようとしています。
StreamWriterのコンテンツ/ストリームをStringBuilder変数にすばやく変換する方法はありますか?
すべてがインターフェイスを実装するクラスがたくさんあり、パラメーターの1つはStreamWriterです。
StreamWriterの内容を確認する必要があります。
テストサーバーにテキストファイルを書き込んだり、開いて内容を確認したりしないようにする方法を見つけようとしています。
StreamWriterのコンテンツ/ストリームをStringBuilder変数にすばやく変換する方法はありますか?
確認できませStreamWriter
ん。書き込み中の基になるストリームを確認できます。したがってMemoryStream
、単体テストでを使用して、これを指すことができますStreamWriter
。それが書き終えたら、あなたはそれから読むことができます。
[TestMethod]
public void SomeMethod_Should_Write_Some_Expected_Output()
{
// arrange
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
{
// act
sut.SomeMethod(writer);
// assert
string actual = Encoding.UTF8.GetString(stream.ToArray());
Assert.AreEqual("some expected output", actual);
}
}
TextWriter
可能であれば、パラメータをに変更することをお勧めします。その時点で、を使用できますStringWriter
。
StreamWriter
または、周りを作成し、後でMemoryStream
その内容をテストすることもできますMemoryStream
(巻き戻すか、呼び出して完全な内容をバイト配列として取得します。ただし、本当にテキストToArray()
をテストしたい場合は、使用する方が間違いなく簡単です。 。_StringWriter
その場合、テストケースをモックする必要があります。サイのモックのようなフレームワークを使用できます。モックフレームワークの利点は、オブジェクトの内容を確認できることですが、サーバーにアクセスしたり、サーバーリソースを占有したりする必要はありません。
このリンクはあなたに基本的な例を提供します:http://www.codeproject.com/Articles/10719/Introducing-Rhino-Mocks