5
난 레일 5와 minitest를 사용하고 있습니다. 궁금 해서요, 내 컨트롤러 메서드의 인스턴스 변수에서 필드의 값을 테스트하려면 어떻게해야합니까? 나는 변수가 정의되어있는 경우 테스트하려는 경우, 내가컨트롤러 인스턴스 변수의 속성 값을 테스트하는 방법은 무엇입니까?
assert_not_nil assigns(:issue)
을 할 수 있다는 걸하지만 난 @ issue.stop_id의 값을 테스트하려는 경우 내가 불분명 해요. 내 컨트롤러 방법은
# 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
이 노력하고있어하지만 난 시험 방법에 선
assert_equal test_stop_id, @issue.stop_id
에 NoSuchMethodError를 얻고있다
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