2017-02-27 5 views
1

インテグレーションテストでカスタムHTTPクライアントを使用できるかどうかを確認しようとしていますか?インテグレーションテストネットコアのカスタムHTTPクライアント

の代わりに自分自身の実装を使用するTESTSERVER

Client = Server.CreateClient() 

からクライアントのインスタンスを取得。 Smthng like:

Client = new DSClient(Server.BaseAddress.AbsoluteUri, Credential); 

私はいつも404を取得しています.WAIDW?

+0

継承したクラスのベースコンストラクタを呼び出していますか? – john

+0

@johnいいえ。私のクライアントはラッパーであり、HttpClientと同じメソッドを提供しません –

+1

Server.CreateClient()が自己ホスティング機能の一部である場合、それをラッパーにベースHttpClientとして渡す必要があります。自己ホスティング機能は完全にメモリ内で動作すると私は信じている。 – john

答えて

0

私は同じ問題に直面しました。自分の状況では、HttpClientを初期化するときにHttpClientを変更する必要があるため、既存のHttpClientを使用できません。だから私のソリューションは、サーバーを作成し、私自身のHttpClientを使ってテストすることです。

using(var server = WebHost.CreateDefaultBuilder(new List<string>().ToArray()) 
    .UseEnvironment("Test") 
    .UseStartup<Startup>() 
    .UseKestrel(options => 
    { 
     options.Listen(IPAddress.Loopback, 5000); 
    }) 
    .Build()) 
    { 
     server.Start(); 
     var client = new HttpClient 
     { 
      BaseAddress = new Uri("http://localhost:5000") 
     } 
     var resp = client.GetAsync("test/testme").Result; 
    } 
関連する問題