Ядро asp.net - Интеграционный тест и атрибуты - PullRequest
0 голосов
/ 06 июля 2019

Я написал атрибут, который работает, когда стек работает на сервере kestrel.

Но когда я пытаюсь добавить тест для этого, атрибут никогда не вызывается.

Атрибут:

 public class AuthenticatedAttribute : Attribute, IAlwaysRunResultFilter
    {
        public void OnResultExecuting(ResultExecutingContext context)
        {
            if (context.HttpContext.User.Identity.IsAuthenticated)
            {
               context.Result = new RedirectToPageResult("/Index");
            }
        }

    public void OnResultExecuted(ResultExecutedContext context)
    {
    }
}

Тест:

[Fact]
        public async Task Get_SignInFromAuthenticated_ShouldRedirectToIndex()
        {
            var response = await GetPageByPath("/users/sigin");

            Assert.NotEqual("/users/sigin", response.RequestMessage.RequestUri.AbsolutePath);
        }

Тестовая конфигурация:

 _client = CreateClient(new WebApplicationFactoryClientOptions
            {
                AllowAutoRedirect = false,

            });

protected async Task<HttpResponseMessage> GetPageByPath(string path)
        {
            return await _client.GetAsync(path);
        }

Было бы здорово, если бы эту функцию можно было проверить, чтобы узнать, правильно ли перенаправляет мой фильтр на страницу, которая содержит фильтр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...