「The Definitive Guide to Grails (Second Edition)」の 104 ページからそのまま引用します。
void testLoginUserNotFound() {
mockRequest.method = "POST"
mockDomain(User)
MockUtils.prepareForConstraintsTests(LoginCommand)
def cmd = new LoginCommand(login:"fred", password:"letmein")
cmd.validate()
controller.login(cmd)
assertTrue cmd.hasErrors()
assertEquals "user.not.found", cmd.errors.login
assertEquals "/store/index", renderArgs.view
}
このテストを実行すると、次のエラーで失敗します。
junit.framework.AssertionFailedError: junit.framework.AssertionFailedError: null
...その時点で「cmd」参照がnullになるまで追跡しました。アクション controller.login が呼び出される前は、cmd は有効で入力されていますが、その後は null です。
コマンド オブジェクトをテストするにはどうすればよいですか?