Reputation: 108
I have a test case:
describe User do
let(:user) { create(:user) } # FactoryGirl
it { User.count == 1 }
end
And setup:
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
config.before(:suite) { DatabaseCleaner.strategy = :truncation }
config.before(:each) { DatabaseCleaner.start }
config.after(:each) { DatabaseCleaner.clean }
config.use_transactional_fixtures = false
end
Why it is not working? How to use let and got a really persisted records?
Upvotes: 3
Views: 1240
Reputation: 138042
let
calls are lazy-evaluated, they aren't run unless the specific method is called:
describe User do
subject { user }
let(:user) { create(:user) } # FactoryGirl
it { … }
end
Alternatively, use let!
for preconditions which are always evaluated:
describe User do
let!(:user) { create(:user) } # FactoryGirl
it { … }
end
Upvotes: 5