В настоящее время создаем веб-API с Nancy в .NET.Наши конечные точки были защищены с помощью CustomBootStrapper:
public class CustomBootstrapper : AutofacNancyBootstrapper {
...
pipelines.BeforeRequest.AddItemToEndOfPipeline(SecurityHooks.RequiresAuthentication());
Однако мы хотели добавить модуль, который не был защищен.Простой «привет мир» для проверки правильности запуска Web API.Таким образом, вместо этого мы удалили приведенную выше строку и вставили все, кроме одного, в наш Модуль:
public UsersModule(...) {
this.RequiresAuthentication();
Get("/...", async args => {
Но это дает проблему в том, что каждый из наших модульных тестов теперь терпит неудачу, потому что, очевидно, теперь только модульпринимает аутентифицированные звонки.И я не уверен, как «подделать» аутентифицированные звонки.
Настройка теста:
_sut = new Browser(new ConfigurableBootstrapper(with => {
var usersModule = new UsersModule(...dataservices);
with.Module(usersModule);
with.Dependency<JsonSerializer>(typeof(CamelCasedJsonSerializer));
}));
Фактический тест:
...
var result = await _sut.Get($"http://localhost:80/api/users/...", with => {
with.Accept("application/json");
with.Header("Content-Type", "application/json");
});
Assert.Equal(HttpStatusCode.NotFound, result.StatusCode);