Я тестирую кусок кода Rails, который гласит:Какой сон() используется Rails?
sleep(10.0)
В моих тестах RSpec, называя:
Kernel.should_receive(:sleep).exactly(1).time
не удалось, и тест спал в течение десяти секунд. Это привело меня к выводу, что sleep()
в программе Rails не звонит Kernel.sleep()
. Я проверил это, изменив мой Rails код:
Kernel.sleep(10.0)
... после чего мои тесты RSpec прошли (и тест не спал).
Это приводит к специфическому и общий вопрос:
- Что реализация сна() не использовать Rails (я бегу Руби 1.9.3/Rails 3.2.1)?
- От интерпретатора, какой самый простой способ найти исходный код для любой функции?
Единственный метод 'sleep', который я могу найти в ruby api, это' Mutex # sleep', так что может быть он: http://apidock.com/ruby/Mutex/sleep – Frost
Если вы хотите спросить два вопроса, вы должны задать два вопроса. Я решил игнорировать второй вопрос в своем ответе, поскольку он уже задан и несколько раз ответил на StackOverflow. –
Jorg: Я знал об опасности сразу задавать два вопроса! Спасибо ... –