2017-09-25 135 views
1

我有一個API(.net核心)和一個基於Angular的本地應用程序。我想對這個API進行集成測試,而不需要客戶端直接測試它。 我查了.NET的核心文檔,我發現這一點:https://docs.microsoft.com/en-us/aspnet/core/testing/integration-testingcall api測試服務器:.net核心API集成測試

這是我做了什麼:

public class Customers 
{ 
    private readonly TestServer _server; 
    private readonly HttpClient _client; 
    public Customers() 
    { 
     // Arrange 
     _server = new TestServer(new WebHostBuilder().UseStartup<Startup>()); 
     _client = _server.CreateClient(); 
    } 

    [Fact] 
    public async Task ReturnSomething() 
    { 
     // Act 
     var response = await _client.GetAsync("/api/customers/test"); 
     response.EnsureSuccessStatusCode(); 

     var responseString = await response.Content.ReadAsStringAsync(); 

     // Assert 
     Assert.Equal("test", 
      responseString); 
    } 
} 

我有這樣的迴應:響應狀態代碼表明沒有成功:500(內部服務器錯誤)

當我把 「等待_client.GetAsync(」/ API /客戶/ testtttt」 =>一個不正確的鏈接到API,它顯示:404(未找到),所以我假定它可以加入API

爲什麼500內部錯誤?以及如何我能有200次成功嗎?

預先感謝您。

回答

1

好的,我找到了對這個問題的迴應。這是與數據庫連接的問題(connectionString爲空)。該API被調用,並且異常是針對404 & 500狀態而生成的,但是不與BD通信的日誌)。

+0

您可以在哪裏指定TestServer的connectionString?如你如何解決這個問題?我也在TestServer中得到了500個錯誤,沒有任何解釋 – conjenks