我确信通常会这样,但我不确定为什么它不能在这里工作:
这是代码
let(:stubbed_object_list) { [OpenStruct.new key: "foo"] }
这是错误:
SyntaxError: ...filepath...: syntax error, unexpected tLABEL, expecting ']'
我可以使用OpenStruct.new(key: "foo")
修改代码,但我不明白为什么这是必要的。
我认为它与数组括号有关,因为这样可以正常工作:
let(:stubbed_object_list) { OpenStruct.new key: "foo" }
答案 0 :(得分:5)
如果添加另一个键值对,则会变得不明确:
[OpenStruct.new key: "foo", other: "bar"]
other: "bar"
可能是另一个数组元素:
[OpenStruct.new(key: "foo"), other: "bar"]
#=> [#<OpenStruct key="foo">, {:other=>"bar"}]
或其他论点:
[OpenStruct.new(key: "foo", other: "bar")]
#=> [#<OpenStruct key="foo", other="bar">]