ruby-on-rails - 为什么 rspec 没有在模型中应该是 NameError 的地方失败?

标签 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:未定义的局部变量或方法”。

我的输出打印

Made it to my method :)
.

Finished in 1.54 seconds
1 example, 0 failures

我觉得我缺少一些重要的东西。有什么想法吗?

最佳答案

您没有调用 expect 方法,因此 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

关于ruby-on-rails - 为什么 rspec 没有在模型中应该是 NameError 的地方失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32275879/

相关文章:

ruby-on-rails - 另一个语句中的每个语句都出现故障?

ruby - 当字符串包含数字时,为什么 Ruby 的 String#to_i 有时会返回 0?

ruby-on-rails-3 - Neo4j ActiveRecord 支持使用 Ruby 作为解释器

ruby-on-rails-3 - 如何使用 pg_search multisearch 创建一个带有结果链接的搜索结果页面?

ruby-on-rails - Rails - 处理全局站点设置

ruby-on-rails - session 生成器不适用于 Rails 3 中的 Authlogic。帮帮我!

javascript - 如何在 Controller (Rails)中重定向后执行JS?

javascript - 如何在字符串中获得可能重叠的匹配项

ruby-on-rails-3 - 用于解决Rails 3中无效的多字节字符(US-ASCII)的全局设置

ruby-on-rails - Resque .. 我怎样才能得到队列列表