【问题标题】:Rails capybara,fill_in failingRails capybara,fill_in 失败
【发布时间】:2015-03-30 03:39:58
【问题描述】:

我有下一个规格:

click_link('Edit')
expect(current_path).to eq(edit_news_path(@news))
fill_in('Body', with: 'Changed body')
click_button('Edit')
expect(current_path).to eq(admin_path)
expect(@news.body).to eq('Changed body')

所有期望都通过了测试,但不是fill_in期望:

Failure/Error: expect(@news.body).to eq('Changed body')

   expected: "Changed body"
        got: "Example"

   (compared using ==)

现场一切正常,所有编辑都保存了,那么 rspecs 中的问题是什么?

【问题讨论】:

    标签: ruby-on-rails capybara


    【解决方案1】:

    这通常意味着 capybara 找不到您要说的字段。

    您可能会检查几件事:标签 Body 是否通过 链接到输入字段?是否只有一个带有“Body”标签的字段?您也可以尝试在 fill_in 调用中使用该字段的 id,例如

    fill_in("content_body", with...
    

    【讨论】:

    • 是的,我只有一个“正文”标签,并且它链接到正确的输入字段,也有销毁问题:失败/错误:期望(@news).to eq(nil)预期: nil got: #
    【解决方案2】:

    我认为您的click_button('edit') 似乎有问题。我认为你不是在拯救身体,你一定有click_button('save') 在测试语句之间使用binding.pry 来检查各种对象的值。

    【讨论】:

    • 不,'编辑'按钮很好,正如我已经说过的 - 编辑操作在现场没有问题
    • 我的意思是问,你的按钮在视图中的名称是什么。你能把你的表单代码粘贴到这里吗?
    • 新闻/edit.html.haml : =form_for @news do |f| =f.label :title =f.text_field :title =f.label :body =f.text_area :body =f.submit "Edit", class: 'btn btn-primary'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多