Я пытаюсь написать тест для своего InvitationsController#Create
.Как проверить наличие существующего пользователя в Rspec в Post # Create?
Это действие POST
http.
В основном то, что должно случиться, когда post#create
сначала выполняется, то первое, что нужно сделать, это нам нужно проверить, чтобы увидеть, если User
существует в системе электронной почты передается в через params[:email]
по Post
запросу.
Мне нелегко обматывать голову, как я это делаю.
Я буду реорганизовать позже, но сначала я хочу, чтобы тестовые функции работали.
Это то, что у меня есть:
describe 'POST #create' do
context 'when invited user IS an existing user' do
before :each do
@users = [
attributes_for(:user),
attributes_for(:user),
attributes_for(:user)
]
end
it 'correctly finds User record of invited user' do
expect {
post :create, invitation: attributes_for(:member, email: @users.first.email)
}.to include(@users.first[:email])
end
end
end
Это ошибка, я получаю:
1) Users::InvitationsController POST #create when invited user IS an existing user correctly finds User record of invited user
Failure/Error: expect {
You must pass an argument rather than a block to use the provided matcher (include "[email protected]"), or the matcher must implement `supports_block_expectations?`.
# ./spec/controllers/users/invitations_controller_spec.rb:17:in `block (4 levels) in <top (required)>'
Я не удивлен ошибкой, потому что тест не чувствует себя хорошо для меня. Я просто не могу понять, как проверить это, не написав код в моем controller#action
.
Я использую FactoryGirl, и он отлично работает в том смысле, что он возвращает достоверные данные для всех типов данных. Проблема здесь в том, как я могу получить RSpec для фактического тестирования необходимой мне функциональности.
Что такое действие 'create', которое предполагается сделать, когда будет найдено электронное письмо? Он возвращает сообщение в виде обычного текста? – nbermudezs