为什么rspec没有在模型中的NameError上失败?

时间:2015-08-28 16:39:45

标签: ruby-on-rails ruby ruby-on-rails-3 rspec

我的rspec看起来像:

it "should test nil" do
  u = Upload.new
  u.save!
  u.my_method!
end

该方法如下:

class Upload < ActiveRecord::Base
  def my_method!
    puts "Made it to my method :)"
    not_defined_var
    puts "But didn't get this far :("
  end
end

显然,not_defined_var应该给出“NameError:undefined local variable or method”。

我的输出打印

Made it to my method :)
.

Finished in 1.54 seconds
1 example, 0 failures

我觉得我错过了必不可少的东西。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

你没有调用方法期望所以Rspec只是传递。要比较是否有任何预期,你必须调用它。要测试代码,您必须将响应与您期望的结果进行比较。

示例:

RSpec.describe Account do
  it "has a balance of zero when first created" do
    expect(Account.new.balance).to eq(Money.new(0))
  end
end

https://relishapp.com/rspec/rspec-expectations/v/3-3/docs