Я пытаюсь переписать свои тесты в Rspec и застрял при попытке сделать обновление для пользователя.
Я уверен, что это глупая вещь, которую я упускаю из виду, но я искал повсюду и не могу найти ответ.
Вот файл myspec:
require 'spec_helper'
describe UsersController, type: [:request, :controller] do
before(:each) { host! 'localhost:3000/' }
describe "#update" do
it "doesn't update user" do
form_params = {
params: {
id: 1,
email: "hello@example",
name: "hello"
}
}
patch :update, params: form_params
end
end
end
Кажется, что: часть обновления неверна, но, насколько я вижу в своих маршрутах, другого способа вызвать ее нет.
Вот ошибка:
ActionController::RoutingError: No route matches [PATCH] "/update"
Вот мои маршруты:
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
Вот мой старый тест:
test "should redirect update when not logged in" do
patch user_path(@user), params: { user: { name: @user.name, email: @user.email } }
assert_not flash.empty?
assert_redirected_to login_url
end
А если вы, ребята, знаете, - как мне преобразовать assert_not flash.empty?
в Rspec?
Большое спасибо заранее!