2013-04-10 90 views
1

在Rails中我是新手,我正在阅读Michael Hartl的RubyOnRails教程...我已阅读了有关第9章类似的问题,但我没有解决我自己的问题,所以这里是我的github存储库,失败的测试......也许有人能帮助我,非常感谢;)第9章测试失败Ruby on rails教程

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)>' 

编辑保罗·菲奥拉万蒂回答后:

好的,谢谢...我改了这个:

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)>' 

回答

1

Your user_pages_spec.rb test说:

describe "edit" do 
    let(:user) { FactoryGirl.create(:user) } 
    before { visit edit_user_path(user) } 
    # ... 
end 

你忘了sign_invisit之前荷兰国际集团的edit_user_path

Here's the tutorial's equivalent spec

编辑

至于你的第二个问题,看到了Rails教程here相当于链接。比较你user_pages_spec.rbherehere:你可以看到你正在试图fill_in一个"Confirm Password"场和"Confirmation"场,其中只有一个在您的应用程序确实存在......

+0

感谢您的回复,我已更正,但仍有5个错误。我比较了你给我的代码,我认为是正确的。 – manguiti 2013-04-10 17:28:54

+0

请参阅编辑问题;你可能只是有一个错字。 – 2013-04-10 23:47:52

0

确保你给每个用户在运行测试套件之前使用rails控制台的有效记忆令牌。遵循8.2.4的精确说明。

相关问题