gpt4 book ai didi

unit-testing - 如何测试 Controller 实例变量中的属性值?

转载 作者:行者123 更新时间:2023-12-03 17:16:02 25 4
gpt4 key购买 nike

我正在使用 rails 5 和 minitest。我想知道,如何测试 Controller 方法的实例变量中字段的值。我意识到如果我想测试变量是否已定义,我可以做

assert_not_nil assigns(:issue)

但我不太清楚是否要测试 @issue.stop_id 的值。我的 Controller 方法是
  # GET /issues/new
def new
unless user_signed_in?
redirect_to new_user_session_path
end
@issue = Issue.new(stop_onestop_id: params[:stop_id], line_onestop_id: params[:line_id])
end

我在我的测试方法中尝试这个
  test "get index page" do
get index_url
assert_not_nil assigns(:issue)
assert_equal test_stop_id, @issue.stop.id
assert_equal test_line_id, @issue.line.id
assert_response :success
end

但我在线上收到 NoSuchMethodError
assert_equal test_stop_id, @issue.stop_id

在测试方法中
test "logged in should get issues page" do
sign_in users(:one)
test_stop_id = 1
test_line_id = 1
get new_issue_url, params: {stop_id: test_stop_id, line_id: test_line_id}
assert_equal test_stop_id, @issue.stop_id
assert_equal test_line_id, @issue.line_id
assert_response :success
end

最佳答案

这可能不是最好的处理方式,但我注意到使用 assigns(:instance_var_name)将返回实例变量的值,因此您可以使用以下内容测试该值:

issue_var = assigns(:issue)
assert_equal test_stop_id, issue_var.stop_id

关于unit-testing - 如何测试 Controller 实例变量中的属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48001433/

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