У меня есть 1-секундное действие jQuery .animate
, которое запускается через 5 секунд после загрузки страницы. Я установил таймер Sinon в своем модульном модульном модуле Jasmine и проверил после отметки 7 секунд, чтобы узнать, соответствуют ли свойства после анимации, как они должны быть.
Это не работает правильно, поэтому я разместил экземпляр самой анимации на моей тестовой странице Jasmine HTML, чтобы лучше понять, что происходит.
-
В Firefox и Chrome загружается страница, вызывается функция анимации, unit test немедленно выходит из строя, а затем (также сразу) анимация заметно появляется.
-
В IE, Opera и Safari загружается страница, вызывается функция анимации, unit test немедленно завершается с ошибкой, и анимация никогда не появляется.
На что я надеялся, было следующее (во всех браузерах):
- Загрузка страницы, вызывается функция анимации, анимация завершается мгновенно, а unit test сразу же выполняется.
Глядя на документацию Sinon, поддельные таймеры охватывают следующие процессы:
setTimeout
, clearTimeout
, setInterval
, clearInterval
, Date
Я не знаю, как работает анимация jQuery, но я полагаю, что она использует CSS для перехода, а переходы CSS не рассматриваются в Sinon useFakeTimers
, поэтому я думаю, что это проблема. Однако, если я прав по поводу проблемы, мне все еще нужно решение.
Может, мне стоит попробовать что-то другое, кроме Синона? Жасмин waits()
отлично работает в этом тесте, но невероятно непрактичен для нетерпеливых людей, подобных мне.
Любые другие предложения? Пожалуйста, имейте в виду, что я новичок в тестировании модулей JS, поэтому смутные ответы будут меня путать больше, чем помочь мне.; О)