Я пытаюсь ознакомиться с Капибарой и другими TDD, и мне не удается. Мой первый пример (сценарий «неудачно опубликовать сообщение без пользователя» делать) должен быть неудачным, поскольку я не ввел пользователя, но он каким-то образом вводится, поскольку вместо получения ожидаемого «Пользователь должен существовать» он говорит «Добро пожаловать» Джон». Мой «before (: each)» все еще бьет по нему, даже если он приходит после или у меня есть какие-то другие проблемы?
/ spec / features / mess_spe c .rb
require 'rails_helper'
feature "post message" do
scenario "unsuccessfully post a message no user" do
visit messages_path
fill_in "message[content]", with: "This is the content of my message."
click_button "Post a Message"
expect(page).to have_content "User must exist"
end
before(:each) do
visit new_user_path
fill_in "user[name]", with: "John"
click_button "Sign In"
visit messages_path
end
scenario "successfully post a message" do
fill_in "message[content]", with: "This is the content of my message."
click_button "Post a Message"
expect(page).to have_content "This is the content of my message"
expect(current_path).to eq(messages_path)
end
scenario "unsuccessfully post a message no content" do
fill_in "message[content]", with: ""
click_button "Post a Message"
expect(page).to have_content "Content is too short"
end
scenario "messages page should have a log out button" do
click_button "logout"
expect(current_path).to eq(new_user_path)
end
end
У меня была похожая проблема с моей спецификацией / models / message_spe c .rb, поскольку мой 2-й тест
it "should not save if no user" do
expect(build(:message)).to be_invalid
end
также не удался, хотя я просто изменил этому, пропустив заводского бота, так что здесь мой текущий рабочий файл
require 'rails_helper'
RSpec.describe Message, type: :model do
it "should save" do
expect(build(:message, user: build(:user))).to be_valid
end
it "should not save if no user" do
message = Message.new(
content: 'This is a message'
)
expect(message).to be_invalid
end
it "should not save content is too short" do
message = Message.new(
content: 'This',
user_id: '1'
)
expect(message).to be_invalid
end
end