Ruby on rails Rails测试单元:如何为模型查找未使用的id
当使用外键测试模型时,我想断言不能使用不存在的外键保存模型 用于测试的示例类: 因此,单元测试如下所示:Ruby on rails Rails测试单元:如何为模型查找未使用的id,ruby-on-rails,testing,Ruby On Rails,Testing,当使用外键测试模型时,我想断言不能使用不存在的外键保存模型 用于测试的示例类: 因此,单元测试如下所示: def test "a wheel must belong to an existent car" @wheel = Wheel.new @wheel.car_id = INEXISTENT_CAR_ID assert !@wheel.save end 找到一个有效的不存在的车ID(知道装置加载了随机ID)的最佳方法是什么?最好的方法是安排它,以便装置或模拟装置实际
def test "a wheel must belong to an existent car"
@wheel = Wheel.new
@wheel.car_id = INEXISTENT_CAR_ID
assert !@wheel.save
end
找到一个有效的不存在的车ID(知道装置加载了随机ID)的最佳方法是什么?最好的方法是安排它,以便装置或模拟装置实际具有您可以控制的ID。如果你使用factorygirl,你可以说:
@car1 = Factory(:car, :id => 1)
@car2 = Factory(:car, :id => 2)
因此,您确定在测试数据库中只有2个ID,1和2。通过这种方式,您可以设置一个id为3的轮子,然后它不应该保存。不确定是否有更简单的方法,但您可以选择:
@wheel.car_id = Car.find(:last, :order => :id).id + 1
我喜欢乔利特的方法。但如果根本没有记录,它就失败了,所以您可能需要编写
@wheel.car_id = Car.order("id").last.try(:id).to_i + 1
我希望只使用rails测试框架来找到答案。
@wheel.car_id = Car.order("id").last.try(:id).to_i + 1