簡體   English   中英

RSpec/Ruby - 在 `let` 塊內創建一個過程

[英]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 顯然有一個塊。 當我在IRBIRB執行 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM