我正在构建一个API POST调用,其中包含要在调用中发送的数据。该数据的一部分是transaction_id,我使用以下代码创建它:
transaction_id = Digest::SHA1.hexdigest([Time.now, rand].join)[0..10].to_i(16).to_s(10)
我也使用RSpec 2.12.2,它还没有定义allow
,所以我无法做甚至测试
allow(Digest::SHA1).to receive(:hexdigest).and_return("transaction_id")
如何在RSpec中模拟transaction_id?我可以冻结时间,但是即使时间被冻结,在[Time.now, rand]
中使用兰特也会返回不同的结果。
答案 0 :(得分:0)
我发现这有效:
Digest::SHA1.any_instance.stubs(:hexdigest).returns("transaction_id")