Mik*_*ike 4 ruby rspec ruby-on-rails
我正在测试我的方法是否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
Run Code Online (Sandbox Code Playgroud)
小智 7
您需要将 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
Run Code Online (Sandbox Code Playgroud)
这应该使您的代码按您的预期工作。
但是,如果您想更具体,您也可以使用另一个匹配器,例如“be_within”,或者在同一个测试中编写多个期望语句,例如“期望是一个整数”、“期望大于 0”等...“it”块中可以包含的期望语句的数量没有限制,只有满足所有期望时测试才会通过。(也就是说,我相信最佳实践是将其分成单独的测试。)
| 归档时间: |
|
| 查看次数: |
7412 次 |
| 最近记录: |