我是Rails中的新手,我正在阅读Michael Hartl的RubyOnRails教程...我已经阅读了第9章类似的问题,但我没有解决我自己的问题,所以这里是我的github存储库和失败的测试...也许某人可以帮助我,非常感谢;)
https://github.com/AntonioCortinaL/sample_app
1) UserPages edit page
Failure/Error: it { should have_selector('h1', text: "Update your profile") }
expected css "h1" with text "Update your profile" to return something
# ./spec/requests/user_pages_spec.rb:61:in `block (4 levels) in <top (required)>'
2) UserPages edit page
Failure/Error: it { should have_selector('title', text: "Edit user") }
expected css "title" with text "Edit user" to return something
# ./spec/requests/user_pages_spec.rb:62:in `block (4 levels) in <top (required)>'
3) UserPages edit page
Failure/Error: it { should have_link('change', href: 'http://gravatar.com/emails') }
expected link "change" to return something
# ./spec/requests/user_pages_spec.rb:63:in `block (4 levels) in <top (required)>'
4) UserPages edit with invalid information
Failure/Error: before { click_button "Save changes" }
Capybara::ElementNotFound:
no button with value or id or text 'Save changes' found
# (eval):2:in `click_button'
# ./spec/requests/user_pages_spec.rb:67:in `block (4 levels) in <top (required)>'
5) UserPages edit with valid information
Failure/Error: fill_in "Name", with: new_name
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Name' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:76:in `block (4 levels) in <top (required)>'
6) UserPages edit with valid information
Failure/Error: fill_in "Name", with: new_name
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Name' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:76:in `block (4 levels) in <top (required)>'
7) UserPages edit with valid information
Failure/Error: fill_in "Name", with: new_name
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Name' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:76:in `block (4 levels) in <top (required)>'
8) UserPages edit with valid information
Failure/Error: fill_in "Name", with: new_name
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Name' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:76:in `block (4 levels) in <top (required)>'
9) UserPages edit with valid information
Failure/Error: fill_in "Name", with: new_name
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Name' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:76:in `block (4 levels) in <top (required)>'
Paul Fioravanti回答后编辑:
好的,谢谢......我为此改变了它:
before do
sign_in user
visit edit_user_path(user)
end
现在有5个错误
1) UserPages edit with valid information
Failure/Error: fill_in "Confirm Password", with: user.password
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Confirm Password' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:81:in `block (4 levels) in <top (required)>'
2) UserPages edit with valid information
Failure/Error: fill_in "Confirm Password", with: user.password
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Confirm Password' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:81:in `block (4 levels) in <top (required)>'
3) UserPages edit with valid information
Failure/Error: fill_in "Confirm Password", with: user.password
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Confirm Password' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:81:in `block (4 levels) in <top (required)>'
4) UserPages edit with valid information
Failure/Error: fill_in "Confirm Password", with: user.password
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Confirm Password' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:81:in `block (4 levels) in <top (required)>'
5) UserPages edit with valid information
Failure/Error: fill_in "Confirm Password", with: user.password
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'Confirm Password' found
# (eval):2:in `fill_in'
# ./spec/requests/user_pages_spec.rb:81:in `block (4 levels) in <top (required)>'
答案 0 :(得分:1)
Your user_pages_spec.rb test说:
describe "edit" do
let(:user) { FactoryGirl.create(:user) }
before { visit edit_user_path(user) }
# ...
end
sign_in
visit
之前忘了edit_user_path
。
Here's the tutorial's equivalent spec
修改强>:
至于您的第二个问题,请参阅Rails教程here中的等效链接。比较 user_pages_spec.rb here和here:您可以看到您正在尝试fill_in
"Confirm Password"
字段和{{1} }字段,您的应用中只有一个实际存在...
答案 1 :(得分:0)
确保在运行测试套件之前使用rails控制台为每个用户提供有效的记忆令牌。按照8.2.4进行精确说明。