我試圖清理規格之間的數據庫。所以我決定使用流行的gem database_cleaner。 現在的問題是,當我使用FactoryGirl創建模型的新實例時,會創建它,但不會顯示在頁面中。在數據庫中創建實例但未在頁面中顯示。在Rspec中測試清潔
這裏是我的spec_helper:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rails'
require 'capybara/rspec'
require 'factory_girl_rails'
require 'pry'
require 'database_cleaner'
RSpec.configure do |config|
config.expect_with :rspec do |expectations|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
end
config.include FactoryGirl::Syntax::Methods
config.order = :random
Kernel.srand config.seed
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each, type: :feature) { DatabaseCleaner.strategy = :truncation }
config.before { DatabaseCleaner.start }
config.after { DatabaseCleaner.clean }
end
而且簡單的測試,我想運行的是這個:
require 'spec_helper'
feature 'designs' do
feature 'editing designs' do
before(:each) { visit designs_path}
given!(:design){ create(:design)}
scenario "from the designs index" do
binding.pry
expect(page).to have_content("Ninja Crane")
end
end
end
我用binding.pry檢查設計的數量和看這一頁。結果是設計正確創建,但沒有顯示在頁面中。
在此先感謝!
可能您在創建對象之前訪問該頁面 – Fer
我添加了睡眠併發生了相同的情況。我不認爲這是問題。 – hcarreras
這不是睡覺的問題。爲什麼要解決你的問題?在('each){visit designs_path}'之前放置一個'binding.pry'到塊'',然後檢查這個'designs'表是否包含數據 – Fer