2016-02-11 1 views
0

Я строю вызов API POST, который включает в себя данные, которые будут отправлены в вызове. Одна часть этих данных является TRANSACTION_ID, которые я создаю, используя следующий код:Тестирование случайной транзакции_ид в RSpec

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? Я могу заморозить время, но наличие rand в [Time.now, rand] возвращает разные результаты, даже если время заморожено.

+0

Digest :: SHA1.stub (: hexdigest) .and_return (TRANSACTION_ID) –

+0

Это возвращает: 'не определен метод«окурка 'for Digest :: SHA1: Class' – rainslg

+0

OOps try: Digest :: SHA1.any_instance.stub (: hexdigest) .and_return (transaction_id) –

ответ

Смежные вопросы