私はこのようなメソッドの単体テストを書きたいと思っています:
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;
}
これは、テストするのにかなり簡単な方法です。RhinoMocksフレームワークを使用しています。しかし、1つの側面で私は自分自身に疑問を抱いています。DAOオブジェクトとそのsaveメソッドをスタブしますが、saveメソッドに渡されるユーザーオブジェクトをどれだけ深くテストする必要があるのでしょうか。そのオブジェクトのすべてのプロパティが私が期待するとおりであると断言する必要がありますか?または、PasswordQuestionプロパティとPasswordAnswerプロパティの値が正しいことだけを主張する必要がありますか?前者は、これら2つのプロパティのみが変更されており、他のプロパティは変更されていないことを確認する必要があるため、私には正しいように思われます。
何人かの方にご意見をいただければと思いました。このような状況で覚えておくべき経験則やパターンはありますか?