NoMethodError:未定义的方法`call’
运行以下测试套件时:
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 # # ./spec/models/user_spec.rb:15:in `block (2 levels) in '
创建用户在控制台中工作正常,它响应方法。
您有语法错误:
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 } #=> # l.call(3) #=> 9 l.(3) #=> 9
- 保存失败后Rails没有回滚事务()
- spec with guard,rails 3.1.1和ruby 1.9.3获取无法加载此类文件错误
- shoulda匹配器应该validate_uniqueness_of与范围失败
- fill_in如何在Rspec / Capybara中运作?
- Rspec:PG :: ConnectionBad:PQsocket()无法获取套接字描述符
- 使用’。’来路由路由和参数 在他们中
- Rails – ruby / 2.1.0 / minitest / parallel_each.rb:67:in”:类’Minitest :: Unit’的未定义方法’_run_suites’(NameError)
- 如何在rails中使用ActiveStorage正确进行模型测试?
- 如何用RSpec测试这种破坏行为?