【问题标题】:Integration Test - WebApi - in memory hosting returning 404 error集成测试 - WebApi - 在内存托管中返回 404 错误
【发布时间】:2017-06-02 15:52:42
【问题描述】:

我们正在创建一个 web api,我正在尝试为 web api 设置集成测试,因此我们不必使用 PostMan 来验证它是否工作。

当我运行 webapi 并使用 PostMan 时,我得到了预期的结果。但是,当我尝试在内存托管中使用并运行 webapi 进行集成测试时,它总是返回 404。

使用 XUnit - 测试类如下。

    public class UnitTest1
{
    private readonly TestServer _server;
    private readonly HttpClient _client;

    public UnitTest1()
    {
        var host = new WebHostBuilder()  
            .UseStartup<Startup>();

        this._server = new TestServer(host);
        this._client = _server.CreateClient();
    }

    [Fact]
    public async void TestMethod1()
    {
        var response = await this._client.GetAsync("api/objects");
        response.EnsureSuccessStatusCode();

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

        List<obj> result = JsonConvert.DeserializeObject<IEnumerable<obj>>(responseString).ToList();

        Assert.Equal(3, result.Count);
    }
}

启动类:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=316888

        GlobalConfiguration.Configure(WebApiConfig.Register);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }

    public void Configure()
    {
        var config = new HttpConfiguration();
        WebApiConfig.Register(config);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
}

我必须在启动时添加配置方法,否则在初始化类时测试会失败。

【问题讨论】:

    标签: asp.net-web-api integration-testing


    【解决方案1】:

    你可以试试:

    using (HttpConfiguration config = new HttpConfiguration())
    {
        config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
    
        WebApiConfig.Register(config); // If Needed
         FilterConfig.RegisterGlobalFilters(GlobalConfiguration.Configuration.Filters); // If Needed
    

    如果需要更多详细信息,您可以在这里找到: https://stackoverflow.com/a/49202654/2928038

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      相关资源
      最近更新 更多