2015-12-01 2 views
1

Я хочу, чтобы определить Proc быть роздан к различным методам, и я хотел определить его в let блокеRSpec/Рубин - создание процедурного Внутри `let` блок

let(:proc) { Proc.new { |f| f.write("c1,c2,c3") } } 

Однако я продолжаю получение ошибки

ArgumentError: tried to create Proc object without a block 

Хотя у Proc явно есть блок. Когда я выполняю Proc сам по себе в IRB, он работает, поэтому я подозреваю, что это как-то связано с тем, как инициализирует его let.

Есть ли способ обойти это?

Спасибо!

ответ

2

Я не могу повторить это. Возможно, у вас более старая версия RSpec?

В любом случае, не забывайте, что proc Руби стенография для Proc.new:

proc { "hello" }.call 
# "hello" 

proc 
# ArgumentError 

Вы можете просто запустить в столкновении имен. Попробуйте изменить имя аргумента let на нечто иное, чем «proc».

Смежные вопросы