我希望我的rspec测试加载我的YAML灯具,我希望它们在事务中加载,以便它们在每次测试后消失。
describe "the thing I'm testing"
fixtures :sandwiches, :condiments
before(:each) do
# stuff
end
it "makes sandwiches"
# making sandwiches
end
end
当调用fixtures
时(在describe
块中,但不在before
块中),它会加载我的三明治和调味品,但在交易之外,如此承诺。好吧,它看起来那样;可以肯定的是,在测试结束后我的灯具仍在数据库中。
我想也许我可以将fixtures
的调用放在交易内的before
区块中,但后来我得到了
NoMethodError:未定义的方法`fixtures'for < RSpec的::核心:: ExampleGroup :: Nested_1:0x007fd1f11f7578>
所以我想我可以使用DatabaseCleaner,或类似的东西,但是......如果没有它,我不能得到我想要的东西吗?
答案 0 :(得分:1)
fixtures
是一个Rails方法(不是RSpec),afaik,实际上并没有加载灯具 - 只是注册它们以便稍后加载。
是一个类方法,因此它必须在类(由describe返回的ExampleGroup
)中运行,而不是before
,{{1评估等等。
您在spec_helper.rb中有it
吗?