Аутентификация форм с бизнес-логикой и модульным тестированием - PullRequest
1 голос
/ 15 февраля 2011

Мой бизнес-класс имеет метод «Сохранить», который при вызове должен автоматически устанавливать MyObject.AspNetUserId (свойство guid) в Membership.GetUser (). Затем ProviderUserKey фактически выполняет сохранение. Я написал код, но у меня проблема с модульным тестированием.

В моем модульном тесте у меня есть строка «FormsAuthentication.SetAuthCookie», на которой тест завершается. Я предполагаю, что это потому, что мой модульный тест не выполняется в контексте HTTP, поэтому он не может установить cookie.

Есть ли способ заставить это работать или мне просто нужно вручную проверить это на демонстрационном сайте?

Это действительно плохая практика, и я должен заниматься чем-то другим? Цель этого кода состоит в том, чтобы свойства «CreatedBy» и «EditedBy» моего объекта устанавливались автоматически, чтобы программисту не приходилось запоминать каждый раз код сайта. Если у кого-то есть лучший метод, я открыт для идей.

1 Ответ

1 голос
/ 15 февраля 2011

Как насчет программирования всех вызовов авторизации для интерфейса авторизации? Таким образом, вы можете разрешить замену его реализации во время модульных тестов и установить ожидания вызова метода login.

Вот пример:

   public interface IAuthorization
    {
        bool ValidateUser(LoginUser u, string password);
        LoginUser GetCurrentUser();
        void LogIn(LoginUser user);
        void LogOut();
        IIdentity GetCurrentUserIdentity();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...