Ruby on rails Rspec检查返回值

Ruby on rails Rspec检查返回值,ruby-on-rails,testing,rspec,Ruby On Rails,Testing,Rspec,我正在学习rails rspec的测试。我有这部分测试: subject(:service) { described_class.new() } context 'when sth' do it 'should sth' do expect ( service.call(@params) ).to eq(0) end end 服务的方法调用返回号。但我得到的是这样的东西: 失败: 1) Module::Registration when sth should sth Fai

我正在学习rails rspec的测试。我有这部分测试:

subject(:service) { described_class.new() }
context 'when sth' do
  it 'should sth' do
    expect ( service.call(@params) ).to eq(0)
  end
end
服务的方法调用返回号。但我得到的是这样的东西:

失败:

 1) Module::Registration when sth should sth
 Failure/Error: expect ( service.call(@params) ).to eq(2)
 NoMethodError:
   undefined method `to' for 2:Fixnum
 # ./spec/module/registration_spec.rb:22:in `block (3 levels) in <module:Module>'

Finished in 2.48 seconds
1 example, 1 failure
当某物应该某物时注册 失败/错误:预期(service.call(@params))。到等式(2) 命名错误: 2的未定义方法“to”:Fixnum #./spec/module/registration_spec.rb:22:in'block(3层)in' 以2.48秒完成 1例,1例失败
那么,如何使用to检查方法返回正确的“Number”变量?

您必须删除
expect
之间的空格(

否则,Ruby将单独计算表达式:

( service.call(@params) ).to
( 2 ).to
#=> undefined method `to' for 2:Fixnum
( service.call(@params) ).to
( 2 ).to
#=> undefined method `to' for 2:Fixnum