直接来自“Grails 权威指南(第二版)”的第 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”引用为空。在调用action controller.login 之前,cmd 有效并填充,之后为null。
如何测试命令对象?