2

我有一个 ActionController 派生的测试,它使用不正确的数据向被测控制器发送一个“发布”请求。控制器尝试创建一个新对象并保存它。该模型具有在保存时触发的验证方法,它们会生成验证错误,以检测测试发送的不正确数据。

到目前为止,一切都很好。现在,控制器通过使用 assert_response :failure 来验证 HTTP 响应状态是否为失败。但是,测试在这一步失败,说:

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

@obj.errors 正确填充了验证错误,但不知何故 HTTP 响应总是 200。

有什么线索吗?

4

1 回答 1

3

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

于 2010-01-15T13:32:43.027 回答