Я хочу, чтобы проверить, что приложение реагирует с 404 ошибкой и имеют код:Rspec & Rails: как проверить контроллер на ошибку 404? Это дает «маршрут не совпадает» ошибка вместо 404
require 'spec_helper'
describe Admin::UsersController do
describe "GET new" do
before { get :new }
it { should respond_with(404) }
end
end
Мои маршруты:
namespace :admin, module: :admin do
resources :users, except: [:new, :create]
end
Когда я запустил локальный сервер в режим производства он действительно отвечает 404 ошибок, но когда я бегу RSpec тест, он дает мне следующее:
1) Admin::UsersController GET new shold not be successful
Failure/Error: get :new
ActionController::UrlGenerationError:
No route matches {:action=>"new", :controller=>"admin/users"}
# ./spec/controllers/admin_users_spec.rb:7:in `block (3 levels) in <top (required)>'
Как я могу проверить это правильно?
Обновлено с правильным ответом:
describe "GET new" do
it "should not route to new" do
expect(get: :new).not_to be_routable
end
end
возможно дубликат [ Тестирование страниц ошибок в Rails с Rspec + Capybara] (http: // stackover flow.com/questions/13996259/testing-error-pages-in-rails-with-rspec-capybara) –
Это не помогает. Я уже это читал. Нет разницы. – kovpack