【发布时间】:2020-04-02 11:47:19
【问题描述】:
我正在编写一个基于 rspec 的测试库。我有一个看起来像这样的自定义 dsl:
rast Worker do
prepare do |day_type, dow|
allow(subject).to receive(:holiday?) { day_type == 'Holiday' }
allow(subject).to receive(:dow) { dow }
end
execute do
result subject.goto_work?
end
end
这两个allow 语句不起作用,因为它们在我的自定义DSL rast 中,方法为prepare。我怎样才能让它发挥作用?
在execute 方法中,我像这样调用prepare 块:
def execute
prepare_block = @prepare_block
RSpec.describe "test" do
prepare_block&.call(*params)
...
【问题讨论】: