5

次のテスト スイートを実行する場合:

require 'spec_helper'

describe User do
  before { @user = User.(name: "Example User", email: "user@example.com" }

  subject { @user }

  it { should respond_to(:name) }
  it { should respond_to(:email) }
end  

次のエラーが表示されます。

Failure/Error: before { @user = User.(name: "Example User", email: "user@example.com") }
NoMethodError:
  undefined method `call' for #<Class:0x007fdfd5dd8008>
  # ./spec/models/user_spec.rb:15:in `block (2 levels) in <top (required)>'

ユーザーの作成はコンソールで問題なく機能し、メソッドに応答します。

4

1 に答える 1

7

構文エラーがあります:

before { @user = User.(name: "Example User", email: "user@example.com" }

と冒頭の括弧の.間にあるべきではありません。Userまた、閉じ括弧がありません。試す:

before { @user = User.new(name: "Example User", email: "user@example.com") }

特定のエラーメッセージについて疑問がある場合、新しいRubyバージョンでは次.()のように機能しcallます。

l = lambda { |x| x * x }
#=> #<Proc:0x007fe5d3907188@(pry):39 (lambda)>
l.call(3)
#=> 9
l.(3)
#=> 9
于 2012-08-19T07:24:32.583 に答える