Я все еще новичок в rails и пытаюсь написать некоторые базовые тесты для одного из моих контроллеров.
Ради краткости этого вопроса давайте рассмотрим два моих теста.
should show captable
не удалось should get index asserts
успешно
Из приведенной ниже ошибки я вижу проблему missing required keys: [:id]
, но я прохожуидентификатор - так что я не могу понять, в чем проблема.
Благодарность за любую помощь:)
Файл теста (включены только соответствующие тесты по этому вопросу)
require 'test_helper'
class CaptablesControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::IntegrationHelpers
setup do
@captable = captables(:one)
end
setup do
@company = companies(:one)
end
setup do
@user = users(:one)
end
test "should show captable" do
sign_in @user
get company_captable_url(@captable), id: @captable.id
assert_response :success
end
test "should get index" do
sign_in @user
get company_captables_url(@company)
assert_response :success
end
....
Theконтроллер (только что включены соответствующие методы)
class CaptablesController < ApplicationController
before_action :set_company
before_action :set_captable, only: [:show, :edit, :update, :destroy]
def index
@captables = @company.captables
end
def show
@captable = Captable.find(params[:id])
end
.....
Крепление таблиц крышки
one:
id: 1
version: 1
name: MyText
company_id: 1
Это ошибка при попытке запускатест
Error:
CaptablesControllerTest#test_should_show_captable:
ActionController::UrlGenerationError: No route matches {:action=>"show", :company_id=>#<Captable id: 1, version: 1, name: "MyText", company_id: 1, created_at: "2018-10-17 18:34:14", updated_at: "2018-10-17 18:34:14", total_stocks_in_company: nil>, :controller=>"captables"}, missing required keys: [:id]
test/controllers/captables_controller_test.rb:41:in `block in <class:CaptablesControllerTest>'
bin/rails test test/controllers/captables_controller_test.rb:39