给出
require 'spec_helper'
describe "visit '/'" do
context "displays ", :driver => :selenium do
before :each do
FactoryGirl.create :restaurant, name: "John's Cafe"
visit '/'
end
context "content:" do
it "Restaurantly Spots!" do
expect(page).to have_content 'Restaurantly Spots!'
end
it "John's Cafe" do
expect(page).to have_content "John's Cafe"
end
end
end
end
使用硒的capybara测试失败了'have_content'“John's Cafe”。
capybara是否无法在块之前看到添加到db的db对象?
我确定测试数据库中有对象,但它没有显示在视图页面上,视图页面在开发中正确连接,我更好奇为什么这个测试不会通过。谢谢。
我的测试套件是基于avdi的博客文章配置的 http://devblog.avdi.org/2012/08/31/configuring-database_cleaner-with-rails-rspec-capybara-and-selenium/
答案 0 :(得分:0)
你可以尝试一些事情: a)将'pry'gem添加到gemfile中,然后可以将binding.pry添加到测试代码中。例如:
it "John's Cafe" do
binding.pry
expect(page).to have_content "John's Cafe"
end
此时运行测试时,您将看到一个控制台(如irb或rails控制台)并对您的应用程序进行内省。因此,您可以查看内容是否在数据库中。例如:
Restaurant.last
这应该可以为您提供有关餐厅是否已保存到数据库的线索。
一个问题,第一次测试通过了吗? “餐厅的景点!”?
请告诉我这是否有效或您有更多问题。
Mike Riley