Tôi đang thử nghiệm một đoạn mã Rails mà đọc:những gì ngủ() Rails sử dụng?
sleep(10.0)
Trong các thử nghiệm RSpec tôi, gọi:
Kernel.should_receive(:sleep).exactly(1).time
thất bại và thử nghiệm ngủ trong vòng mười giây. Điều này khiến tôi kết luận rằng sleep()
trong chương trình Rails không gọi số Kernel.sleep()
. Tôi đã xác minh điều này bằng cách thay đổi mã Rails của tôi thành:
Kernel.sleep(10.0)
... sau đó các kiểm tra RSpec của tôi đã qua (và thử nghiệm không ngủ).
Điều này dẫn đến một cụ thể và một câu hỏi chung:
- gì thực hiện giấc ngủ() không Rails sử dụng (Tôi đang chạy của Ruby 1.9.3/Rails 3.2.1)?
- Từ trình thông dịch, cách dễ nhất để tìm mã nguồn cho bất kỳ chức năng nào?
Phương pháp 'ngủ' khác duy nhất tôi có thể tìm thấy trong api ruby là' Mutex # sleep', vì vậy có thể là: http://apidock.com/ruby/Mutex/sleep – Frost
Nếu bạn muốn hỏi hai câu hỏi, bạn nên hỏi hai câu hỏi. Tôi đã chọn để bỏ qua câu hỏi thứ hai trong câu trả lời của tôi, vì nó đã được hỏi và trả lời nhiều lần trên StackOverflow. –
Jorg: Yah, tôi đã nhận thức được sự nguy hiểm khi hỏi hai câu hỏi cùng một lúc! Cảm ơn ... –