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

これを克服する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 に答える