неожиданный =>, ожидая '}' в rspec Ожидайте

ruby rspec

385 просмотра

2 ответа

У меня есть этот код:

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}

Что я пропустил или ошибся с моим кодом, который дает мне эту ошибку? Это общая проблема?

Автор: Michael Durrant Источник Размещён: 12.11.2019 09:42

Ответы (2)


2 плюса

Он думает, что вы передаете блок eq, а не хеш. Вы можете решить эту проблему, используя круглые скобки вокруг аргументов метода:

expect(adapter.foo).to eq({'owner_id' => user.id})
Автор: Andrew Marshall Размещён: 02.11.2013 01:59

1 плюс

Одним из способов преодоления этого является использование Hashвместо{}

например

expect(adapter.send(:conditions_to_fields, :pwner => user)).to eq \
Hash('owner_id' => user.id, 'owner_type' => user.class.name)
Автор: Michael Durrant Размещён: 02.11.2013 01:54
Вопросы из категории :
32x32