Аутентификация запросов на Microsoft.Owin.Testing.TestServer

Я использую класс owin TestServer для unit test my web api. Он отлично работает, за исключением того, что я не уверен, как выполнять аутентификацию запросов, поэтому я не могу проверить конечные точки, требующие проверки подлинности, кроме того, чтобы неавторизованные запросы, не прошедшие проверку подлинности.

Я настраиваю WebApi для использования только аутентификации маркера на предъявителя, как указано здесь:

// Web API configuration and services
// Configure Web API to use only bearer token authentication.
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

Любые идеи, как я мог бы сделать это легко?

Ответы

Ответ 2

Для более простых тестов интеграции вы можете использовать MyTested.WebApi, что позволяет вам делать следующее:

MyWebApi
    .Server()
    .Starts<Startup>()
    .WithHttpRequestMessage(req => req
        .WithRequestUri("/api/Books/Get")
        .WithMethod(HttpMethod.Get))
    .ShouldReturnHttpResponseMessage()
    .WithStatusCode(HttpStatusCode.OK)
    .WithResponseModelOfType<List<BookResponseModel>>()
    .Passing(m => m.Count == 3);

Полный образец с проверкой подлинности можно найти здесь:

Sample