Relish建议以下......
expect(actual).to be < expected
但是,如果我尝试......
x.rand(10)
expect(x).to be < 11
完整规格
Then(/^I find each world produces just up to (\d+) fighters per turn and no higher$/) do |arg1|
test = Planet.new
test.production.each_index do |ndx|
expect(test.production[ndx]).to be < 11
end
end
我会
undefined method `<' for #<RSpec::Matchers::BuiltIn::BePredicate:0x0000000268a3b0> (NoMethodError)
在比较比较的情况下,使用expect的当前正确语法是什么?
答案 0 :(得分:1)
语法看起来不错。我会首先制作一个非常小的简单规范,独立于您的代码,看看您的设置是否有效。例如(它应该失败btw;):
describe 'test' do
it 'works' do
expect(2).to be < 1
end
end
答案 1 :(得分:1)
查看rspec-expectations的源代码,它应该返回
RSpec :: Matchers :: BuiltIn ::不是RSpec :: Matchers :: BuiltIn :: BePredicate
你有可能be_?这将返回以下虚拟测试中的RSpec :: Matchers :: BuiltIn :: BePredicate
loadToJSON()
输出
describe 'test' do
it 'works' do
puts "be is a #{be.class}"
puts "be_ is a #{be_.class}"
puts "be is defined on #{method(:be)}"
expect(2).to be_ < 1
end
end
或许可以重新定义be方法吗?