Làm cách nào tôi có thể chỉ gửi phương thức trên cuộc gọi đầu tiên và phương thức thứ hai sẽ hoạt động như mong đợi?phương pháp gốc chỉ trên cuộc gọi đầu tiên với Rspec
tôi có phương pháp sau đây:
def method
do_stuff
rescue => MyException
sleep rand
retry
end
Tôi muốn cuộc gọi đầu tiên của do_stuff
nâng MyException
, nhưng trong cuộc gọi thứ hai, cư xử bình thường. Tôi cần phải đạt được điều này để kiểm tra khối rescue
của tôi mà không nhận được một vòng lặp vô hạn.
Có cách nào để đạt được điều này không?
này giải quyết một vấn đề tôi chạy vào với tính năng chỉ đọc ActiveRecord của - tôi đã có một mô hình được đánh dấu chỉ đọc ('def readonly; true; end') nhưng cần thiết để tạo các cá thể trong một thử nghiệm và không muốn mã kiểm tra mux với mã sản xuất. Giải pháp (trong một factory_girl factory): 'after (: build) do | f | f.stub (: readonly?) {f.unstub (: chỉ đọc?); sai }; f.save !; kết thúc' –