私のシナリオはこれです - 私は2つのコアメソッド:CreateRequestとGetResponseを持つインターフェイス(IRestSupport)の背後に具体的なクラス(RestSupport)を持っています。このクラスはJSONを介してWebエンドポイントと話すことができるように設計されています。このクラスは、より高いレベルのビジネスロジックを持つ別のクラスから呼び出され、送信する必要のある正確なJSONを提供します。ユニットテストWebRequest.CreateHttpライブラリ内
テスト中にエンドポイントを呼び出さないように、これらの2つのメソッドをユニットテストできるようにする必要があります。ヘッダーコレクションに情報を追加する必要があるため、CreateRequestはHttpWebRequestに依存しています。これより多くのコードがありますが、以下に例を示します。
var request = WebRequest.Create(url) as HttpWebRequest;
request.Headers.Add("Authorization", AuthorizationHeader);
IWebRequestCreateを使用してリクエストの作成を制御できるようにするWeb上の多くの例があります。私が持っている問題は、HttpWebRequestを使用しているときにこれが正しく動作するように見えることができないということです。 IWebRequestCreateのCreateメソッドは、WebRequestオブジェクトを返すことを想定しています。 Webサンプルの欠点は、HttpWebRequestを使用していないことです。私はHttpWebRequestからクラスを派生することはできません。これは本当に私の問題の要です。
私は偽物にアクセスすることはできませんが、Moqを使用することはできます。私の目標は、それが避けられればライブラリコードを変更しないことです。