polymer 1.0单元测试 - 如何将属性绑定到子元素?

时间:2015-09-02 17:59:19

标签: unit-testing polymer

我创建了一个由我的自定义“parent”元素使用的“child”元素。我的子元素标签在我的“父”元素中看起来像这样:

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

fruits是我的“parent”元素中的数组,不是我的“child”元素的属性。在我的“孩子”元素中,我有以下内容:

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

如何为我的“child”元素编写单元测试以查看dom-repeat是否正常工作?我想直接在“child”元素上编写测试,而不使用“parent”。我知道如何针对“child”元素的属性编写断言,但我不知道如何绑定或传递它通常从“父”中听到的fruits数组,因为父级不是我测试的一部分。如何将水果数组提供给我的“子”元素?

一旦我将水果阵列喂给它,我该如何测试是否创建了相应的纸卡?

1 个答案:

答案 0 :(得分:1)

您实际上在您的子元素上有fruits属性。你在这里设置:

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

这就是说,将child-element.fruits设置为parent-element.fruits。

此处的绑定为fruits创建(隐式)setter,因此可以观察到更改:

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

您可以使用标记中的数组文字初始化子元素:

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

或者通过在JavaScript中设置属性:

myChildEl.fruits = myFruits;

我认为您应该能够检查通过执行以下操作创建的卡片:

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