我正在尝试将单元测试添加到我的项目中处理显示错误的部分。
为了在没有ActiveRecord :: Errors对象迭代的情况下测试正确的处理,我试图从其他工作的测试夹具中删除错误对象(而不是单个错误)({{ 1}})。
我曾希望@customer
能胜任这项工作,但这会引发错误。
测试用例:
@customer.errors = nil
正在测试的单位(不应该是相关的,但以防万一):
test "Errors_WhenErrorsObjectNotFound_RaisesNoErrors" do
log_in_as(@customer)
@customer.errors = nil
get :edit, id: @customer
assert_nothing_raised
end
生成错误:
<% if errors.count == 0 || errors.nil? %>
<div class="success">
<ul>
<li>Update successful</li>
</ul>
</div>
<% else %>
<div class="error">
<ul>
<% errors.full_messages.each do |err| %>
<li><%= err %></li>
<% end %>
</ul>
</div>
<% end %>
有关如何删除错误对象的任何建议吗?
答案 0 :(得分:0)
您正在寻找ActiveModel::Errors#clear.
test "Errors_WhenErrorsObjectNotFound_RaisesNoErrors" do
log_in_as(@customer)
@customer.errors.clear
get :edit, id: @customer
assert_nothing_raised
end