[英]RSpec/Ruby - creating a proc inside a `let` block
我想定義一個Proc
來傳遞給各種方法,我想在一個let
塊中定義它
let(:proc) { Proc.new { |f| f.write("c1,c2,c3") } }
但是我不斷收到錯誤
ArgumentError: tried to create Proc object without a block
雖然 Proc 顯然有一個塊。 當我在IRB
中IRB
執行 Proc 時,它可以工作,所以我懷疑這與let
初始化它的方式有關。
有沒有辦法解決這個問題?
謝謝!
我無法復制這一點。 也許您有舊版本的 RSpec?
無論如何,不要忘記proc
是 Ruby 對Proc.new
簡寫:
proc { "hello" }.call
# "hello"
proc
# ArgumentError
您可能只是遇到了命名沖突。 嘗試將let
參數名稱更改為“proc”以外的名稱。
對於任何在這方面絆倒的人:
let(:proc) { ->(f) { f.write("c1,c2,c3") } }
應該管用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.