2017-02-27 77 views
1

我想弄清楚它是否可以使用自定義的HTTP客戶端集成測試?集成測試自定義HTTP客戶端在網絡核心

而是從TESTSERVER

獲得客戶端實例
Client = Server.CreateClient() 

用自己的實現。 Smthng像:

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

當我這樣做時,我總是得到404。WAIDW?

+0

您是否在調用繼承類中的基構造函數? – john

+0

@john沒有。問題的關鍵是我的客戶端是一個包裝,它不提供相同的方法,HttpClient的 –

+1

如果Server.CreateClient()是自託管功能的一部分,那麼你就需要把它作爲基本的HttpClient到您的包裝。我相信,自託管功能完全在內存中運行。 – john

回答

0

我面臨同樣的問題,在我的情況,我不能使用現有的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; 
    }