我想我明白了。爲了不使用交易,您需要指定:
self.use_transactional_fixtures = false
您還必須確保清理在每個方案後創建的內容。
describe Attendee do
self.use_transactional_fixtures = false
def clear_all
ActiveRecord::Base.connection.execute('delete from users')
ActiveRecord::Base.connection.execute('delete from contact_info')
ActiveRecord::Base.connection.execute('delete from events')
end
before(:each) do
# create some test users
@event = Factory.create(:event)
@event.publish!
@user = Factory.create(:user)
@user_2 = Factory.create(:user_2)
end
after(:each) do
clear_all
end
it "should list have attendees in the directory" do
# in my case, Attendee class uses my attendees database view
Attendee.count.should be 2
end
end