0

我有这个代码:

adapter.send(:conditions_to_fields, :user => user).should == {'owner_id' => user.id}

我更新为使用期望:

expect(adapter.send(:conditions_to_fields, :user => user)).to eq {'owner_id' => user.id}

但这给了我:

syntax error, unexpected =>, expecting '}'
... => user)).to eq {'owner_id' => user.id}

我的代码有什么遗漏或错误导致我出现该错误?这是一个普遍的问题吗?

4

2 回答 2

2

它认为您将块传递给eq,而不是散列。您可以通过在方法参数周围使用括号来解决此问题:

expect(adapter.foo).to eq({'owner_id' => user.id})
于 2013-11-02T13:59:26.563 回答
1

克服这个问题的一种方法是使用Hash而不是{}

例如

expect(adapter.send(:conditions_to_fields, :pwner => user)).to eq \
Hash('owner_id' => user.id, 'owner_type' => user.class.name)
于 2013-11-02T13:54:08.920 回答