Rspec returns "unexpected '{', expecting keyword_end" 的语法错误
Rspec returns syntax error of "unexpected '{', expecting keyword_end"
这适用于 Ruby 的一台机器,但不适用于另一台机器。
代码:
describe 'testing reverse string different ways' do
let :thing {'cba321'}
it 'the system method' do
source = '123abc'
result = source.reverse
expect(result).to eq 'cba321'
end
end
错误:
SyntaxError:
/home/michael/Dropbox/90_2019/work/code/ruby__rails/ruby/reverse_string_tests_timing/test_spec.rb:12: syntax error, une
xpected '{', expecting keyword_end
let :thing {'cba321'}
^
/home/michael/Dropbox/90_2019/work/code/ruby__rails/ruby/reverse_string_tests_timing/test_spec.rb:12: syntax error, une
xpected '}', expecting end-of-input
let :thing {'cba321'}
在 Ruby 2.4.1
中允许没有括号,但在 Ruby 2.5.1
中不允许。
因此解决方法是向 let
添加括号,例如
改变
let :source {'cba321'}
到
let (:source) {'cba321'}
这适用于 Ruby 的一台机器,但不适用于另一台机器。
代码:
describe 'testing reverse string different ways' do
let :thing {'cba321'}
it 'the system method' do
source = '123abc'
result = source.reverse
expect(result).to eq 'cba321'
end
end
错误:
SyntaxError:
/home/michael/Dropbox/90_2019/work/code/ruby__rails/ruby/reverse_string_tests_timing/test_spec.rb:12: syntax error, une
xpected '{', expecting keyword_end
let :thing {'cba321'}
^
/home/michael/Dropbox/90_2019/work/code/ruby__rails/ruby/reverse_string_tests_timing/test_spec.rb:12: syntax error, une
xpected '}', expecting end-of-input
let :thing {'cba321'}
在 Ruby 2.4.1
中允许没有括号,但在 Ruby 2.5.1
中不允许。
因此解决方法是向 let
添加括号,例如
改变
let :source {'cba321'}
到
let (:source) {'cba321'}