Я пишу тестовую библиотеку, которая работает поверх rspe c. У меня есть пользовательский 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)
...