rspec 中的 it 块可以使用大括号吗?
Can's use curly braces for it blocks in rspec?
it 'returns true for correct password' do
expect(user.is_password?('password')).to eq(true)
end
我的 rspec 有这个代码,但是当我用
替换它时
it 'returns true for correct password' { expect ...}
它抱怨
syntax error, unexpected '{', expecting `end'
...ns true for correct password' {expect(user.is_password?('pas..
大括号不应该等同于do...end
吗?
由于 do
和 end
是除了块之外不在任何其他上下文中使用的关键字,因此 Ruby 解释器在理解它时没有问题。但是花括号至少在两种不同的上下文中使用,首先充当块分隔符,其次充当 Hash
的分隔符,这意味着您必须在此处帮助 Ruby 解释器使用花括号让它知道你想在什么上下文中使用花括号。
在你的例子中,如果你使用带括号的方法语法,即 it()
而不是 it
,这应该告诉解释器括号后的花括号应该被解释为块的分隔符。
使用这个...
it('returns true for correct password') { expect ... }
而不是这个。
it 'returns true for correct password' { expect ... }
it 'returns true for correct password' do
expect(user.is_password?('password')).to eq(true)
end
我的 rspec 有这个代码,但是当我用
替换它时it 'returns true for correct password' { expect ...}
它抱怨
syntax error, unexpected '{', expecting `end'
...ns true for correct password' {expect(user.is_password?('pas..
大括号不应该等同于do...end
吗?
由于 do
和 end
是除了块之外不在任何其他上下文中使用的关键字,因此 Ruby 解释器在理解它时没有问题。但是花括号至少在两种不同的上下文中使用,首先充当块分隔符,其次充当 Hash
的分隔符,这意味着您必须在此处帮助 Ruby 解释器使用花括号让它知道你想在什么上下文中使用花括号。
在你的例子中,如果你使用带括号的方法语法,即 it()
而不是 it
,这应该告诉解释器括号后的花括号应该被解释为块的分隔符。
使用这个...
it('returns true for correct password') { expect ... }
而不是这个。
it 'returns true for correct password' { expect ... }