1

GUI でファイルをアップロードするユーザーから来るストリームを受け入れるビジネス ロジック層にメソッドがあり、メソッドがこのストリームを適切に使用して決定を下すことをテストする適切な方法に興味があります。

public Sub Initialize(ByVal uploadStream As Stream)
    ''// Logic using uploadStream
End Sub

テスト目的で、モックされたストリームをこのメソッドに DI したいと思いますが、ストリームを操作するたびに、抽象化がぎこちなく不足していることに気付きます。

直感的に、ストリーム ラッパーを作成して、ラッパーのインターフェイスを DI して、ロジックとストリーム ワッパーとの相互作用をテストできるようにする必要があることがわかります。

続行するための最良の方法は何ですか?

4

2 に答える 2

3

「偽の」アップロードを渡す方法だけが必要な場合は、テスト ハーネスでMemoryStreamを作成して渡すことができます。

于 2009-02-04T03:02:35.327 に答える
1

私も MemoryStream を使用する傾向があります。一部のテストでは、Read メソッドをオーバーロードして、要求されたバイト数よりも少ない数を返すことが必要になる場合があります。(ストリームの最後に到達しない限り、MemoryStream は常に要求されたバイト数を返すと思いますが、ネットワーク ストリームは、ストリームの終了前であっても、要求されたよりも少ないバイト数を返すことができます。)

于 2009-02-04T03:06:27.457 に答える