Angular/Jasmine/Chutzpah: модульное тестирование элемента DOM (Sweetalert)

Я пытаюсь написать модульный тест, который проверяет наличие модального окна (sweetalert) в безголовый браузер. Чтобы проверить, присутствует ли он, я могу использовать этот аксессор jQuery

$('*').hasClass('sweet-overlay')

Из тестирования sweetalert в Chrome я не верю, что это окно добавляется в DOM асинхронно. Кроме того, согласно документации, событие загрузки отсутствует.

Однако в наборе тестов модульный тест завершается до того, как в DOM будет добавлено окно Sweetalert. Я могу убедиться в этом, войдя в консоль.

Итак, вопрос в том, как мне это проверить? Есть ли способ добавить часы в DOM phanton.js и прослушивать изменения?

Обратите внимание, что это в приложении Angular, поэтому, если есть способ сделать это с помощью Angular, это было бы здорово.

РЕДАКТИРОВАТЬ - я не использую Selenium. в заголовке четко указано, что я использую Жасмин.


person user714157    schedule 12.01.2016    source источник


Ответы (1)


Надеюсь, это поможет кому-нибудь еще столкнуться с проблемой нажатия кнопок и модульных тестов Jasmine -

Оказывается, в Jasmine существует проблема синхронизации с нажатиями кнопок и утверждениями. Модульный тест будет выполняться до события нажатия кнопки.

В коде, который я тестировал, у меня было приятное окно предупреждения, запускаемое в обработчике нажатия кнопки.

Я реорганизовал часть этого кода, чтобы нажатие кнопки вызывало другой метод, showSweetAlert().

В моем модульном тесте я могу вызвать showSweetAlert(), и все работает как часы.

person user714157    schedule 14.01.2016