Я хочу написать модульные тесты для такого метода, как этот:
public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)
{
ISPMembershipUserDao userDao = GetISPMembershipUserDao();
if (ValidateUser(username, password))
{
SPMembershipUser user = userDao.GetUserByUserName(username);
user.PasswordQuestion = newPasswordQuestion;
user.PasswordAnswer = newPasswordAnswer;
userDao.Save(user);
return true;
}
return false;
}
Это довольно простой метод для тестирования. Я использую фреймворк Rhino Mocks. Но один аспект заставляет меня задавать себе вопросы. Я заглушаю объект DAO и его метод сохранения, и мне интересно, как глубоко я должен протестировать этот пользовательский объект, который передается в метод сохранения. Должен ли я утверждать, что каждое свойство этого объекта соответствует ожиданиям? Или я должен только утверждать, что свойства PasswordQuestion и PasswordAnswer имеют правильные значения? Первое мне кажется правильным, так как я должен убедиться, что только эти два свойства были изменены, а остальные не были затронуты.
Я надеялся, что некоторые люди могут высказать свое мнение по этому поводу. Есть ли в этих ситуациях эмпирическое правило или шаблон, о котором следует помнить?