В каком порядке вам нужно вызвать заглушку, заменить и исправить с помощью тестера веб-компонентов

Я начинаю создавать набор тестов для некоторых элементов моего приложения. На верхнем уровне у меня есть элемент <my-app>, и в его шаблоне он использует элемент <my-session для контроля входа пользователя в систему и элемент <iron-media-query> для определения длины строки, используемой в заголовке приложения.

Чтобы лучше контролировать поведение этих двух, я создаю их специальные тестовые версии и использую подход replace('my-session').with('test-session') для их изменения. Я также буду использовать функцию stub для управления взаимодействием с набором тестов.

Я полностью прочитал документацию на веб-сайте полимера, но не могу понять, нужно ли вам использовать replace и stub до или после вызова fixture.

Может кто-нибудь посоветовать


person akc42    schedule 30.07.2016    source источник


Ответы (1)


В конце концов я нашел ответ

Оба должны быть вызваны до создания экземпляра прибора. Причина в том, что заглушка изменяет элемент-прототип (т.е. после его создания, но до его штамповки в dom, поэтому это необходимо сделать до приспособления).

Функция замены фактически добавляет запись в карту для использования при создании экземпляра прибора. Так что снова его нужно вызвать перед вызовом прибора.

На сегодняшний день последний выпуск web-components-tester не содержит исправления, которое позволяет этому работать с сильно вложенными элементами (например, я пытался протестировать элемент уровня приложения и панель инструментов приложения в приложении). header-layout не расширялся, когда использовалась замена), но исправление находится в мастере. В качестве временной меры я скопировал основную версию browser.js в используемую копию в каталоге bower_componenents/web-component-tester.

Я думаю, что в некоторых очень сложных макетах все еще есть ошибка. У меня был бумажный тост с шаблоном dom-if внутри его содержимого, который я пытался заменить тестовой версией, чтобы действовать как макет, который также имел тег в своем шаблоне. это не сработало

person akc42    schedule 11.08.2016