... SO
我有一个RSpec测试问题,我试图配置一个特定的设置(不创建新数据,但修改实例数据),并且在运行测试用例后,数据不会被还原。请看下面的一个简单示例,并注意foo是一个ActiveRecord对象...... 要求' rails_helper'
RSpec.describe My::Code do
before(:context) do
@foo = FactoryGirl.create(:foo)
end
after(:context) do
@foo.destroy!
end
let(:foo) { @foo.clone }
describe 'something' do
# Imagine `something` just returns foo.bar, which is an over-
# simplification, but gives you an idea of the problem I am seeing
subject { My::Code.something(foo) }
context 'when foo has different property value' do
before(:each) do
foo.bar = false
end
it { is_expected_to be(false) }
end
context 'when foo has original property value' do
# This will fail, as foo's bar property is still false
it { is_expected_to be(true) }
end
end
......这是我的情况的要点,我无法弄清楚为什么RSpec不回滚。我的rails_helper
文件中的一小部分......
config.use_transactional_fixtures = true
...
config.around(:each) do |example|
DatabaseCleaner.cleaning do
example.run
end
end
......非常感谢任何见解。