Я пытаюсь обновить свой индексный указатель с помощью флажков. Логика работает так, как ожидалось, но моя спецификация контроллера не срабатывает, и я не понимаю, почему. Мне интересно, может быть что-то не так с моим синтаксисом. Инкремент работает с моим тестом, но не с спецификацией контроллера. Соответствующая часть теста заключается в следующем:Спецификация контроллера не увеличивает счетчик, как ожидалось
describe "PUT complete" do
it "it archives a diagnostic info report" do
diagnostic = FG.create(:diagnostic_info)
puts DiagnosticInfo.all.size
expect {
put :complete, :diagnostic_ids => [diagnostic.id]
}.to change(DiagnosticInfo.all, :size).by(-1)
response.should redirect_to(admin_diagnostics_path)
end
end
тест неисправного я получаю это:
1) Admin::DiagnosticsController PUT complete it archives a diagnostic info report
Failure/Error: put :complete, :diagnostic_ids => [diagnostic.ids]
NoMethodError:
undefined method `ids' for #<DiagnosticInfo:0x0000000827c678>
# ./spec/controllers/admin/diagnostics_controller_spec.rb:53:in `block (4 levels) in <top (required)>'
# ./spec/controllers/admin/diagnostics_controller_spec.rb:52:in `block (3 levels) in <top (required)>'
# -e:1:in `<main>'
Можете ли вы показать нам свой диагностический контролер? –
Ошибка сбоя говорит о 'diagnostic.ids', а ваш код -' diagnostic.id' ... Где-то есть ошибка. – pierallard