意外=>,期待在rspec期待'}'

时间:2013-11-02 13:54:09

标签: ruby rspec

我有这段代码:

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}

我错过了哪些代码错误或错误? 这是一个常见的问题吗?

2 个答案:

答案 0 :(得分:2)

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

expect(adapter.foo).to eq({'owner_id' => user.id})

答案 1 :(得分:1)

解决此问题的一种方法是使用Hash代替{}

e.g。

expect(adapter.send(:conditions_to_fields, :pwner => user)).to eq \
Hash('owner_id' => user.id, 'owner_type' => user.class.name)