根据教程我试图通过测试后,我收到以下错误消息。
Nicolas-Krauses-iMac:sample_app fuzzy_bunnys$ bundle exec rspec spec/
/Users/fuzzy_bunnys/.rvm/gems/ruby-2.0.0-p353/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load': /Users/fuzzy_bunnys/Documents/rails_one_click/sample_app/spec/models/user_spec.rb:6: syntax error, unexpected '}', expecting => (SyntaxError)
/Users/fuzzy_bunnys/Documents/rails_one_click/sample_app/spec/models/user_spec.rb:62: syntax error, unexpected end-of-input, expecting keyword_end
我在user_spec.rb文件中检查了第6行和第62行,但无法找到任何不匹配的结束关键字或任何不合适的括号。所以我对于发生了什么感到有点失落。 user_spec.rb代码如下。非常感谢任何帮助!
require 'spec_helper'
describe User do
before do
@user = User.new(name: "Example User", email: "user@example.com" )
end
subject { @user }
it {should respond_to(:name)}
it {should respond_to(:email)}
it {should respond_to(:password_digest)}
it {should be_valid}
describe "when name is not present" do
before {@user.name=" "}
it {should_not be_valid}
end
describe "when name is too long" do
before {@user.name="a"*51}
it {should_not be_valid}
end
describe "when email is not present" do
before {@user.email=" "}
it {should_not be_valid}
end
describe "when email format is invalid" do
it "should be invalid" do
addresses = %w[user@foo,com user_at_foo.org example.user@foo.
foo@bar_baz.com foo@bar+baz.com ]
addresses.each do | invalid_address|
@user.email = invalid_address
expect(@user).not_to be_valid
end
end
end
describe "when email format is valid" do
it "should be valid" do
addresses = %w[user@FOO.COM A_US-ER@f.b.org frst.lst@foo.jp a+b@baz.cn]
addresses.each do |valid_address|
@user.email = valid_address
expect(@user).to be_valid
end
end
end
describe "when email address is already taken" do
before do
user_with_same_email = @user.dup
user_with_same_email.email = @user.email.upcase
user_with_same_email.save
end
it {should_not be_valid}
end
end
答案 0 :(得分:3)
看起来你的ruby --version
是< 1.9.3(或者每当引入新的冒号语法时)
要修复,请安装较新的ruby,或将哈希转换为旧样式(name: "Example User"
变为:name => "Example User"
)
证据 - 第6行是哈希(name: "Example User", email: "user@example.com"
)的行,它期望=>
而不是}
,它可能是下一行中块的结尾。< / p>