Rails控制器测试 - 验证错误不会引发HTTP错误响应

时间:2010-01-15 13:23:02

标签: ruby-on-rails unit-testing http actioncontroller

我有一个ActionController派生的Test,它向正在测试的控制器发送一个'post'请求,但数据不正确。控制器尝试创建新对象并保存。该模型具有在保存时触发的验证方法,并且它们生成验证错误,检测测试发送的错误数据。

到目前为止一切顺利。现在,控制器通过使用assert_response:failure来验证HTTP响应状态是否失败。但是,测试在此步骤失败了:

预期的响应为<:failure>,但是< 200>

@ obj.errors正确填充了验证错误,但不知何故,HTTP响应始终为200.

任何线索?

1 个答案:

答案 0 :(得分:3)

您的控制器代码有什么作用?在Rails中处理验证错误的常用方法是发送200 OK响应(例如,使用render :action => 'new')。响应包含表单(填充了提交的参数)以及验证错误消息。