【发布时间】:2014-05-28 11:55:45
【问题描述】:
我有一个循环的“have_selector”测试没有通过,但是使用 Capybara.string 的更直接的测试可以。谁能解释一下?
require 'spec_helper'
describe "Item pages" do
subject { page }
describe "Item list" do
let(:user) { FactoryGirl.create(:user) }
before do
FactoryGirl.create(:item, user: user, description: "Testing")
FactoryGirl.create(:item, user: user, description: "Testing 2")
sign_in user
visit items_path
end
it { should have_link("Logout") }
it "should render the user's list of items" do
user.items.each do |item|
#expect(page).to have_selector("li##{item.id}", text: item.description)
Capybara.string(page.body).has_selector?("li##{item.id}", text: item.description)
end
end
end
end
执行此测试时,注释掉的“expect()”测试未通过,但它下面的测试通过。失败信息是:
Failure/Error: expect(page.body).to have_selector("li##{item.id}", text: item.description)
NoMethodError:
undefined method `has_selector?' for #<String:0x007fe2a9782dd0>
【问题讨论】:
标签: ruby-on-rails ruby rspec capybara