我想在這裏做一些測試。我有一個DSL和一個能夠證明它的類。我想測試評估DSL方法的方法,但我不知道如何在rspec中將&塊作爲參數傳遞。RSpec測試DSL instance_eval方法
這是我的DSL
animal 'Cat' do
likes :eating, :sleeping
dislikes :dogs
end
這是我Earth.rb文件,評估方法:
def animal(name, &block)
animal = Animal.new(name)
animal.instance_eval(&block)
@animals << animals
end
而這正是我試圖運行我的規格文件:
describe '.animal' do
context 'with correct block' do
it "creates a set of animals" do
expect(earth.animal('Cat', "likes :sugar, :cinema dislikes :dogs")).
to be something
end
end
end
什麼是通過該塊不工作的方式? 謝謝!
爲什麼不按照您在問題頂部給出的示例進行調用? –
它不起作用 – pipipo