ruby on rails - RSpec, Factory Girl and Capybara: no items saved -


i have mountable rails engine rspec:

rspec.configure |config|   config.use_transactional_fixtures = false    config.before(:suite)     databasecleaner.clean_with(:truncation)   end    config.before(:each) |example|     databasecleaner.strategy= example.metadata[:js] ? :truncation : :transaction     databasecleaner.start   end    config.after(:each)     databasecleaner.clean   end end 

simple factory:

factorygirl.define   factory :post, :class => myengine::post     title 'title'   end end 

capybara feature:

require 'spec_helper'  describe 'post', :type => :feature   let(:post) { factorygirl.create :post }    'index action should have post'     visit posts_path     expect(page).to have_text(post.title)   end end 

and post model doesn't have validations.

but when running tests shows there no posts created.

also activerecord logs:

insert "my_engine_posts" ... release savepoint active_record_1 rollback transaction 

this spec fail.

let in rspec lazy loading. post not created until reference in:

expect(page).to have_text(post.title) 

so can either use let! not lazy loading or reference post before visit page:

require 'spec_helper'  describe 'post', :type => :feature   let(:post) { factorygirl.create :post }    'index action should have post'     post     visit posts_path     expect(page).to have_text(post.title)   end end 

Comments

Popular posts from this blog

OpenCV OpenCL: Convert Mat to Bitmap in JNI Layer for Android -

android - org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope -

python - How to remove the Xframe Options header in django? -