我期待编写单元测试的方法,如这一个状态:测试对象的在保存
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属性具有正确的值?前者似乎对我来说,因为我应该确保只有这两个属性已被修改,其他未被触及。
我希望有人可以对此发表自己的看法。对于这些类型的情况,有没有经验法则或模式?