我有一个ActionController派生的Test,它向正在测试的控制器发送一个'post'请求,但数据不正确。控制器尝试创建新对象并保存。该模型具有在保存时触发的验证方法,并且它们生成验证错误,检测测试发送的错误数据。
到目前为止一切顺利。现在,控制器通过使用assert_response:failure来验证HTTP响应状态是否失败。但是,测试在此步骤失败了:
预期的响应为<:failure>,但是< 200>
@ obj.errors正确填充了验证错误,但不知何故,HTTP响应始终为200.
任何线索?
答案 0 :(得分:3)
您的控制器代码有什么作用?在Rails中处理验证错误的常用方法是发送200 OK响应(例如,使用render :action => 'new'
)。响应包含表单(填充了提交的参数)以及验证错误消息。