Я пишу модульный тест с использованием Owin Test Server, но он не ведет себя так, как я ожидаю. Я не могу понять, что я делаю неправильно. Я ожидаю, что код состояния будет изменен, как я делаю на последнем этапе конвейера owin, но он не вступает в силу, и, следовательно, второе утверждение терпит неудачу.Owin Middleware не изменяет статус ответа с помощью тестового сервера
using Owin;
using Microsoft.Owin;
using Microsoft.Owin.Testing;
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using Xunit;
namespace My.Namespace
{
[Trait("Category", "Test Category")]
public class WhenIMakeWebRequest
{
[Fact]
public async void IGetUnauthorizedError()
{
using (var server = TestServer.Create(app =>
{
app.Use((context, next) =>
{
return next().ContinueWith(task =>
{
context.Response.WriteAsync(" Now Changing Status Code");
context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
});
});
app.Run(async context =>
{
await context.Response.WriteAsync("Hello world using OWIN TestServer.");
});
}))
{
var response = await server.CreateRequest("/Welcome").GetAsync();
var result = await response.Content.ReadAsStringAsync();
Assert.Equal(result, "Hello world using OWIN TestServer. Now Changing Status Code");
Assert.Equal(response.StatusCode, System.Net.HttpStatusCode.Unauthorized);
}
}
}
}
Или подключить событие OnSendingHeaders – Tratcher