2017-09-25 17 views
1

私はAPI(.netコア)とAngularに基づいたローカルアプリケーションを持っています。クライアント側で直接テストすることなく、このAPIの統合テストを行いたいと思います。 私は、.NETコアドキュメントをチェックし、私はこれを見つけた:call 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(内部サーバーエラー:レスポンスのステータスコードが成功を示すものではありません、私がやったものだhttps://docs.microsoft.com/en-us/aspnet/core/testing/integration-testing

私は "待つ_client.GetAsync入れ)

(" APIへ/ API /顧客/ testtttt」=>不正なリンクを、それがディスプレイ:404(見つからなかった)ので、私はそれがAPIに参加できることを前提と

なぜ500の内部エラーですか?私は200成功することができますか?

ありがとうございます。

答えて

1

私はこの問題に対する回答を見つけました。データベースへの接続に問題がありました(connectionStringはnullです)。 APIが呼び出され、404 & 500のステータスに対して例外が生成されますが、BDとの接続不良に関するログは生成されません)。

+0

ここで、TestServerのconnectionStringを指定できますか?あなたはこの問題をどうやって解決しましたか?私も説明なしでTestServerで500のエラーを取得しています – conjenks