我期待編寫單元測試的方法,如這一個狀態:測試對象的在保存
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屬性具有正確的值?前者似乎對我來說,因爲我應該確保只有這兩個屬性已被修改,其他未被觸及。
我希望有人可以對此發表自己的看法。對於這些類型的情況,有沒有經驗法則或模式?