これらの値は 内で設定できないため、別のアプローチをお勧めしますHttpRequest
。
HttpRequest
を処理し、適切な出力を生成することだけを担当するクラスを作成します。次に、そのクラスからインターフェイスを抽出します。DoSomething
そのインターフェイスに依存します。テストのために、メソッドがそのロジックで使用するデータを提供できる「偽物」または代用実装を提供できます。
たとえば、次のようなインターフェイスがある場合があります
interface ICanHandleRequest { }
したがって、DoSomething メソッドが通常使用する実装を本番コードに含めることができます。
class RequestHandler : ICanHandleRequest { }
ただし、テスト用に別の実装を作成して、DoSomething メソッドをテストできるようにします。
class TestHandler : ICanHandleRequest { }
必要に応じて、モッキング ライブラリ ( Rhino Mocksなど) を使用してそのような偽物を作成することもできます。アイデアは、 のDoSomething
使い方を知る必要はなくHttpRequest
、他の責任があるということです。単に出力が必要です。本番環境では、そのデータは実際のクラスから取得され、HttpRequest
. テストの場合は、実装を、テストに適したデータを生成できるものに置き換えるだけです。わかる?