So habe ich diese Funktion spec in meiner Rails-AnwendungSchienen. Capybara fill_in findet Texteingaben aber nicht fill_in nicht
require 'rails_helper'
feature 'As a signed in user' do
let(:user) {create(:user)}
let(:article) { create(:article)}
before {login_as(user, :scope => :user)}
scenario 'I can edit article with valid attributes' do
visit edit_article_path(article)
puts current_path
fill_in 'article_name', with: 'Valid name'
fill_in 'article_content', with: 'Valid content'
# save_and_open_page
click_button 'Update Article'
expect(article.name).to eq 'Valid name'
end
end
und fill_in
nicht wirklich die Eingabefelder mit Valid name
und Valid content
füllen. Ich debugge es durch Speichern und Öffnen der Seite und die Werte bleiben gleich, also denke ich, es ist kein Problem mit meiner Rails App, sondern eher etwas mit Capybara. In anderen zukünftigen Spezifikationen:
require 'rails_helper'
feature 'As a signed in user' do
let(:user) {create(:user)}
let(:article) { build(:article)}
before {login_as(user, :scope => :user)}
scenario 'I can create article with valid attributes' do
visit '/articles/new'
fill_in 'Name', with: article.name
fill_in 'article_content', with: article.content
expect {click_button 'Create Article'}.to change {Article.count}.by(1)
end
end
alles funktioniert wie erwartet. Der Fehler, den ich erhalte, ist:
Failures:
1) As a signed in user I can edit article with valid attributes
Failure/Error: expect(article.name).to eq 'Valid name'
expected: "Valid name"
got: "Name1"
(compared using ==)
# ./spec/features/articles/article_update_spec.rb:15:in `block (2 levels) in <top (required)>'
Was kann der Grund dafür sein und wie man eine Spezifikationsdurchführung bildet?
Großartig! Vielen Dank, das hat das Problem gelöst. –