在rspec中模拟随机生成的数据

时间:2014-05-14 15:11:16

标签: ruby-on-rails-3 rspec-rails

我有一个模型,它接受一组参数并尝试对一个参数进行加密,并将加密数据传递给另一个方法。

def post(key, value, data)

    business_guid = SecureRandom.uuid

    queue_item = "#{key}^#{value}^#{data}"
    Queue.create_queue_item(business, Finance, "medium", 2011-12-20, "abc", data)
end

所以在这里我需要在我的rspec中模拟数据,因为每次它创建一个随机的business_guid,我的模拟数据都会失败,新生成的数据。那么请你告诉我如何处理它。

2 个答案:

答案 0 :(得分:0)

(不确定我是否理解正确)

为什么不直接存根

SecureRandom.stub(uuid: 'some_uuid')

答案 1 :(得分:0)

如果您正在使用Minitest(我强烈推荐),您可以使用简单的Minitest存根:

SecureRandom.stub :uuid, "whateveryouwant" do
  SecureRandom.uuid #=> "whateveryouwant"
end

我更喜欢这些,因为一旦块完成存根就会消失!真棒。