CanJS: модульное тестирование различных частей

У меня есть один вопрос. Я начал использовать CanJS совсем недавно и пытался создать модульные тесты (funcunit / jasmine), которые будут работать в сборке maven с TeamCity (без головы).

Было относительно легко протестировать Model, потому что она не опирается на какое-либо представление, и вы можете создать экземпляр и протестировать функциональность. Но мне не очень понятно, как тестировать компоненты и другие части CanJS, Просто чтобы прояснить, что мне не нужны тесты E2E с взаимодействием с пользователем, я пытаюсь добиться лишь получения некоторых данных, предоставленных Can.fixtures, а затем просто проверить, что мои функции работают нормально, вызывая их в тестах.

1 ответ

Решение

Тесты контроллера выигрывают от добавления жасминового крепления к вашему испытательному стенду Жасмин. Вы можете прикрепить () соответствующие элементы DOM и создать экземпляр контроллера в beforeEach() перед добавлением шпионов к экземпляру или прототипу контроллера инициируйте события или напрямую вызовите функции, требующие наличия некоторого дерева DOM.

Для компонентов есть еще один шаг. Из-за того, как создаются компоненты, либо вы должны использовать can.view() создавать и прикреплять свои пользовательские элементы к DOM (и очищать его в afterEach()), или вы должны использовать can.view.callbacks.tagHandler(el, tag_name) вручную создать компонент для элемента, уже находящегося в DOM.

Чтобы было ясно, это облегчает ситуацию, когда функции вашего контроллера / компонента отбирают данные из DOM, как в обработчиках событий. Он также работает просто для вызова функций непосредственно в прототипе и создания шпионских объектов для this.scope а также this.options

Другие вопросы по тегам