我测试我的方法populate()
是否返回非空值(它会返回一个整数> 0),但是要正确编写它会有麻烦。我有:
describe House::Room do
describe '.populate' do
let(:info) {
$info = {"people"=>
{"name"=>"Jordan",
"last_name"=>"McClalister"}}
}
it 'should return an integer > 0' do
expect(House::Room.populate(info)).not_to eq(nil)
end
end
end
答案 0 :(得分:1)
您需要将let分配更改为:
describe House::Room do
describe '.populate' do
let(:info) {"people"=>
{"name"=>"Jordan",
"last_name"=>"McClalister"}
}
it 'should return an integer > 0' do
expect(House::Room.populate(info)).not_to eq(nil)
end
end
end
这应该使您的代码按预期工作。
但是,您也可以使用其他匹配器,例如' be_within'如果你想更具体,或者在同一个测试中写几个期望陈述,比如'期望是一个整数','期望大于0'等...您可以在'它中拥有的期望陈述数量没有限制。阻止,测试只会通过所有的期望是匹配的。 (也就是说,我认为最佳做法是将其分解为单独的测试。)