call api测试服务器:.net核心API集成测试

时间:2017-09-25 08:34:24

标签: asp.net-core

我有一个API(.net核心)和一个基于Angular的本地应用程序。我想对此API进行集成测试,而不是直接由客户端进行测试。 我检查了.net核心文档,我发现了这个:https://docs.microsoft.com/en-us/aspnet/core/testing/integration-testing

这就是我所做的:

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 / customers / testtttt“=&gt;一个不正确的API链接时,它显示:404(未找到)所以我认为它可以加入API。

为什么500内部错误?我怎么能有200个成功?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

好的,我找到了对这个问题的回应。这是与数据库连接的问题(connectionString为null)。调用API并为404&amp; 500状态,但没有与BD连接错误的日志)。