Можно ли использовать фигурные скобки для блоков в rspe c? - PullRequest
0 голосов
/ 29 мая 2020
it 'returns true for correct password' do
   expect(user.is_password?('password')).to eq(true)
end

У меня есть этот код для моего rspe c, но когда я заменяю его на

it 'returns true for correct password' { expect ...}

, он жалуется

syntax error, unexpected '{', expecting `end'
  ...ns true for correct password' {expect(user.is_password?('pas..

shouldn фигурные скобки не эквивалентны do...end?

1 Ответ

4 голосов
/ 29 мая 2020

Поскольку do и end являются ключевыми словами, которые не используются ни в каком другом контексте, кроме блоков, интерпретатор Ruby не имеет проблем с их пониманием. Но фигурные скобки используются по крайней мере в двух разных контекстах, во-первых, выступая в качестве разделителей блоков, а во-вторых, выступая в качестве разделителей для Hash, что означает, что вам нужно немного помочь интерпретатору Ruby здесь при использовании фигурных скобок, чтобы он знает, в каком контексте вы хотите использовать фигурные скобки.

В вашем случае, если вы используете синтаксис метода со скобками, то есть it() вместо it, это должно сообщить интерпретатору, что фигурные фигурные скобки после круглых скобок предназначены для интерпретации как разделители для блока.

Используйте это ...

it('returns true for correct password') { expect ... }

вместо этого.

it 'returns true for correct password' { expect ... }
...