RSpec / Ruby - 在`let`块中创建一个proc

时间:2015-12-01 18:09:12

标签: ruby rspec

我想定义一个Proc来传递给各种方法,我想在let块中定义它

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

但是我一直收到错误

ArgumentError: tried to create Proc object without a block

尽管Proc显然有一个障碍。当我在IRB中单独执行Proc时,它可以工作,所以我怀疑它与let如何初始化它有关。

有办法解决这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

我无法复制这个。也许您有RSpec的旧版本?

在任何情况下,不要忘记procProc.new的简写:

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

proc
# ArgumentError

您可能只是遇到了命名冲突。尝试将let参数名称更改为“proc”以外的其他名称。

答案 1 :(得分:0)

对于绊脚石的任何人:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
</dependency>

应该工作