当期望不匹配时,为什么RSpec会因TypeError而失败?

时间:2016-08-13 09:54:44

标签: ruby rspec

当我使用将要通过的示例运行dfm <- trim(dfm, minCount = 5) 时,一切都很好。 但是当期望不匹配时,我得到了一个奇怪的rspec,而不是关于预期价值和实际价值之间差异的有用信息。

鉴于

  • ruby​​ 2.3.1p112
  • rspec 3.5.2
  • 正如TypeError
  • 生成的规范帮助器

何时

rspec —init

然后一切都很好

describe "Basics" do
  it "runs rspec successfully" do
    x = true
    expect(x).to be(true)
  end
end

BUT 当我将x更改为false时,匹配失败

:当

Finished in 0.00286 seconds (files took 0.09671 seconds to load)
1 example, 0 failures

,然后

describe "Basics" do
  it "runs rspec successfully" do
    x = false
    expect(x).to be(true)
  end
end

我希望输出像

Failures:

  1) Basics runs rspec successfully
     Failure/Error: expect(x).to be(true)

     TypeError:   <——— 
       superclass must be a Class (Module given)
     # ./spec/lib/basic_spec.rb:4:in `block (2 levels) in <top (required)>'

Finished in 0.06168 seconds (files took 0.09715 seconds to load)
1 example, 1 failure

而不是这个TypeError。

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

原因是我的宝石文件中的以下行

gem "prettyprint"

我从Gemfile中删除了它,一切都按预期工作。 正如我所知,可以在不使用任何宝石的情况下使用pp some_object