2017-09-25 109 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