我正在测试我的方法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
2条答案
按热度按时间6kkfgxo01#
您需要将let赋值更改为:
这将使您的代码按预期工作。
但是,如果您希望更具体,也可以使用其他匹配器,如“be_within”,或者在同一个测试中编写多个expect语句,如“expect to be an integer”、“expect to be greater than 0”等......“it”块中可以包含的expect语句的数量没有限制,只有满足所有期望,测试才会通过。(也就是说,我相信最好的实践是将其分成单独的测试。)
watbbzwu2#
根据RSpec/BeNil,rubocop-rspec支持
be_nil
胜过be(nil)
。因此,@GabrielBonner提供的答案可以更好地表示为: