3
有没有一种标准或最佳实践的方式来测试rails中的动作是否返回正确的文本?例如,我有一个是用来做AJAX验证,做以下简单的动作:如何断言操作返回正确的文本?
def get_object_id
if params[:id].blank?
return render(:text => -1, :layout => false)
end
my_object = MyObject.find_by_id(params[:id].strip)
# If the object is valid return the object id
if my_object and my_object.active?
return render(:text => my_object.id, :layout => false)
end
# Otherwise, return -1
return render(:text => -1, :layout => false)
end
现在,我使用的是@应答对象在我的测试...即:
def test_get_object_id_returns_invalid_for_non_existent_id
# Act
get :get_object_id, :id => 999
# Assert
assert_response :success
assert_equal "-1", @response.body
end
但是,虽然大多数人都是新手,但我迄今为止所看到的似乎表明,除了检查@request.body
之外,可能还有更好的方法来执行此操作。
所以,我给你的红宝石专家的问题是:这是最好的方式吗?
这是个好主意。你的意思是ActionController :: TestCase而不是ActionController :: TestClass?我似乎无法找到关于后者的任何文件。 – jerhinesmith 2009-10-01 19:19:30
糟糕,纠正。 – cwninja 2009-10-01 20:04:54