gpt4 book ai didi

ruby-on-rails - 如何断言操作返回正确的文本?

转载 作者:行者123 更新时间:2023-12-04 06:10:30 24 4
gpt4 key购买 nike

是否有标准或最佳实践方法来测试 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

现在,我在测试中使用@response 对象......即:

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

但是,尽管大多数人都是 Rails 的新手,但到目前为止我所看到的似乎表明,除了检查 @request.body 之外,可能还有更好的方法来做到这一点。

那么,我想问各位 ruby​​ 专家的问题是:这是最好的方法吗?

最佳答案

我想你的位置已经到了。

assert_select 仅适用于 XML 内容,因此对于其他格式,您必须自己动手。如果我做了很多这样的事情,我可能会向 ActionController::TestCase 添加一个命名的断言方法。

例如

def assert_response_equals(v)
assert_equal v.to_s, @response.body, "Expected response body to be #{v.inspect}"
end

这将允许您跳过引号。

关于ruby-on-rails - 如何断言操作返回正确的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1505833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com