2015-09-02 2 views
0

Я создал «дочерний» элемент, который используется моим пользовательским «родительским» элементом. Мой дочерний элемент тег выглядит в моем элементе «родительского»:polymer 1.0 unit tests - как связать свойства с дочерним элементом?

<child-element fruits="{{fruits}}"></child-element> 

фрукты массив в моем элементе «родительского» и не является собственность моего элемента «ребенка». В моем элементе «ребенок» У меня есть следующее:

<template is="dom-repeat" items="[[fruits]]"> 
    <paper-card>[[item.flavor]]</paper-card> 
</template> 

Как я могу написать модульный тест для моего элемента «ребенка», чтобы увидеть, если дом повтор работает? Я хочу написать тест непосредственно на «дочернем» элементе без использования «родителя». Я знаю, как писать утверждения против свойств «дочернего» элемента, но я не знаю, как связать или передать массив фруктов, который он обычно прослушивает из «родителя», поскольку родительский элемент не является частью моего теста , Как я могу подавать массив фруктов на мой «дочерний» элемент?

Как только я подпишу это массив фруктов, как я могу проверить, были ли созданы соответствующие бумажные карточки?

ответ

1

Вы на самом деле do имеют свойство fruits на вашем дочернем элементе. Вы установили его здесь:

<child-element fruits="{{fruits}}"></child-element> 

Это говорит, что установите child-element.fruits в parent-element.fruits.

Связывание здесь создает (неявный) сеттера для fruits так можно наблюдать изменения:

<template is="dom-repeat" items="[[fruits]]"> 

Вы можете инициализировать дочерний элемент с помощью литерал массива в разметке:

<child-element fruits='[{"flavor": "apple"}, {"flavor": "blueberry"}]'> 

или по установка объекта в JavaScript:

myChildEl.fruits = myFruits; 

Я думаю, что вы шо uld сможет проверить карты, которые были созданы, сделав что-то вроде:

var cards = Polymer.dom(myChildEl.root).querySelectorAll('paper-card'); 
+0

Спасибо, я смог установить его через свойство, но я не смог установить его с помощью литерала массива. Работа с бумажной карточкой тоже работала. – Gilberg

+0

Прохладный! При выполнении литерала массива убедитесь, что вы используете одиночные кавычки снаружи и двойные кавычки внутри (т. Е. Значение атрибута должно быть правильно указано JSON). – DocDude