我正在测试我的方法
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
您需要将 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 be(nil)
end
end
end
这应该使您的代码按预期工作。
但是,你也可以使用另一个匹配器,比如 'be_within' 如果你想更具体,或者在同一个测试中写几个 expect 语句,比如 'expect to be an integer', 'expect to be greater than 0',等等...在“it”块中可以包含的期望语句的数量没有限制,只有满足所有期望,测试才会通过。 (也就是说,我认为最好的做法是将其分成单独的测试。)