Аутентификация программируемого входа в систему c # - PullRequest
1 голос
/ 24 июня 2009

У меня есть тест, который требует, чтобы я использовал Аутентификацию, чтобы проверить, вошел ли пользователь в систему и прошел ли аутентификацию перед выполнением его задачи.

Могу ли я установить Аутентификацию из модульного теста, чтобы обмануть / смоделировать Аутентификацию в главном приложении, думая, что вы авторизованы и вошли в систему?

Ответы [ 2 ]

2 голосов
/ 24 июня 2009

В этом случае я бы использовал метод, который использует экземпляр IIdentity. Затем вы можете использовать любую фальшивую инфраструктуру (например, Rhino Mocks) для макета IIdentity, чтобы гарантировать, что «пользователь» вошел или не вошел в систему.

public void DoSomething(IIdentity identity)
{
    if(identity.IsAuthenticated) ...
}

и тогда ваш юнит-тест будет выглядеть так:

[Test]
public void Test()
{
     var mockery = new MockRepository();
     IIdentity identity = mockery.DynamicMock<IIdentity>();

     //perform your test logic here
}
0 голосов
/ 24 июня 2009

Одно из решений заключается в том, чтобы файл web.config на тестовой машине имел элемент authorization, разрешающий доступ всем пользователям. Это предполагает, что на вашем тестовом компьютере и на рабочем компьютере есть несовместимые веб-конфигурации (т. Е. Если вы случайно загрузите файл no-authenticate web.config на рабочий компьютер, он должен сломать все, а не просто удалить аутентификацию).

Это может считаться плохой практикой ...

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