Я пытаюсь реализовать диспетчер контактов с рельсами. Я использую RSpec для разработки через тестирование.
«Когда я просматриваю страницу одного человека, я нажимаю ссылку« Добавить », которая переводит меня на страницу, где я ввожу номер телефона. Я нажимаю« Сохранить », затем я вижу человека и его обновленную информацию»
Я пытаюсь подтвердить это действие.
В моем классе контроллеров
describe "POST #create" do
context "with valid params" do
let(:alice) { Person.create(first_name: 'Alice', last_name: 'Smith') }
let(:valid_attributes) { {number: '555-1234', person_id: alice.id} }
it "creates a new PhoneNumber" do
expect {
post :create, params: {phone_number: valid_attributes}, session: valid_session
}.to change(PhoneNumber, :count).by(1)
end
it "redirects to the phone number's person" do
post :create, params: {:phone_number => valid_attributes}, session: valid_session
@phone_number = PhoneNumber.new(person_id: params[:person_id])
expect(response).to redirect_to(@phone_number.person)
end
end
Я хочу перенаправить на номер телефона, но при получении номера телефона
Это дает мне ошибку undefined local variable or method params' for #<RSpec::ExampleGroups::PhoneNumbersController::POSTCreate::WithValidParams:0x00007fc89e276898>
У меня также есть проверка вида следующим образом
it 'adds a new phone number' do
page.click_link('Add phone number')
page.fill_in('Number', with: '555-8888')
page.click_button('Create Phone number')
expect(current_path).to eq(person_path(person))
expect(page).to have_content('555-8888')
end
В данный момент этот тест также не выполняется из-за этой ошибки:
expected: "/people/1"
got: "/phone_numbers"
Как я могу решить эти проблемы и перенаправить пользователя по желанию? Заранее спасибо