12

すべてがインターフェイスを実装するクラスがたくさんあり、パラメーターの1つはStreamWriterです。

StreamWriterの内容を確認する必要があります。

テストサーバーにテキストファイルを書き込んだり、開いて内容を確認したりしないようにする方法を見つけようとしています。

StreamWriterのコンテンツ/ストリームをStringBuilder変数にすばやく変換する方法はありますか?

4

3 に答える 3

20

確認できませ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);
    }
}
于 2012-09-18T15:53:44.763 に答える
13

TextWriter可能であれば、パラメータをに変更することをお勧めします。その時点で、を使用できますStringWriter

StreamWriterまたは、周りを作成し、後でMemoryStreamその内容をテストすることもできますMemoryStream(巻き戻すか、呼び出して完全な内容をバイト配列として取得します。ただし、本当にテキストToArray()をテストしたい場合は、使用する方が間違いなく簡単です。 。_StringWriter

于 2012-09-18T15:54:12.503 に答える
0

その場合、テストケースをモックする必要があります。サイのモックのようなフレームワークを使用できます。モックフレームワークの利点は、オブジェクトの内容を確認できることですが、サーバーにアクセスしたり、サーバーリソースを占有したりする必要はありません。

このリンクはあなたに基本的な例を提供します:http://www.codeproject.com/Articles/10719/Introducing-Rhino-Mocks

于 2012-09-18T15:56:40.680 に答える