【发布时间】:2009-04-22 22:33:44
【问题描述】:
我希望为这样的方法编写单元测试:
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 属性具有正确的值?前者对我来说似乎是正确的,因为我应该确保只有这两个属性已被修改,而其他属性没有被修改。
我希望有人能就此发表意见。对于这些类型的情况,是否有要记住的经验法则或模式?
【问题讨论】:
标签: asp.net unit-testing tdd mocking rhino-mocks