我是Rspec的新手,很抱歉,如果这是一个糟糕的问题。在我正在运行的一个测试测试中,我有使用随机数生成器来确定是否应该执行方法的代码。如果无法执行,则该方法会引发错误消息。
所以我需要编写一个测试,它继续在一小组类对象上运行该方法,直到它不再收到错误消息。因此,实际上每个类对象最终会在几次尝试后成功执行该方法。
该数组有6个项目。我希望我需要循环遍历每一个然后使用while循环,然后测试是否已执行错误消息,但我还没有弄清楚如何。感谢任何帮助。
我现在有这样的事情......
def create_planes
6.times do
plane=Plane.new
planes<<plane
end
end
it 'should land each plane' do
create_planes
i = 0
while i<planes.count
begin
airport.plane_land(planes[i])
i++
rescue
next
end
end
expect(airport.plane_count).to eq(6)
end
答案 0 :(得分:1)
通常使用RSpec,您将设置输入并测试输出。在发生错误之前你不会执行,你会执行已知数量的土地,然后检查机场的飞机是否改变了你的预期。
it "should maintain a list of landed planes" do
expect {
3.times { airport.plane_land Plane.new }
}.to change { airport.plane_count }.from(0).to(3)
end