1
当我运行rspec
的例子会通过,一切都很好。 但是,当期望不匹配时,我得到了一个奇怪的TypeError
,而不是有用的消息,关于预期值和实际值之间的差异。为什么在期望不匹配时RSpec会因TypeError失败?
鉴于
- 红宝石2.3.1p112
- rspec的3.5.2
- 一个规范的帮手,就像通过
rspec —init
当
产生0然后一切都很好
Finished in 0.00286 seconds (files took 0.09671 seconds to load)
1 example, 0 failures
但当我改变X为false,从而匹配失败
当
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
我希望像
lhs: false
rhs: true
,而不是这种类型错误的输出。
这里有什么问题?
我认为你只能使用'expect(x).to'或'expect(x).not_to be'在所有其他情况下,你使用的操作符就像'expect(x).to <3' I认为。 – slowjack2k
也有这些构造,用于测试真/假而不是真/假:'expect(x).to be_truthy'; 'expect(x).to be_falsey' –