Javascript EmberJS测试:在组件内部测试组件
我是Ember的新手,我正在努力学习如何编写测试 现在我有了一个组件,我们把它叫做“ParentComponent”,为了简化,它看起来是这样的Javascript EmberJS测试:在组件内部测试组件,javascript,ember.js,Javascript,Ember.js,我是Ember的新手,我正在努力学习如何编写测试 现在我有了一个组件,我们把它叫做“ParentComponent”,为了简化,它看起来是这样的 <div> <div class="childDiv"> {{childComponent trait=someBoolean}} </div> <div> other stuff </div> </di
<div>
<div class="childDiv">
{{childComponent trait=someBoolean}}
</div>
<div>
other stuff
</div>
</div>
在“此处插入代码”中,我希望能够检查childComponent的“trait”是否确实等于true。Ember的现成测试套件不支持您试图实现的目标。我认为这是有充分理由的 Ember的测试套件是围绕应该测试组件的公共API这一理念构建的。如果某个组件使用其他组件来提供其功能,则应将其视为实现细节。它不是公共API的一部分。它可以通过重构组件实现随时更改,而不影响公共API。因此,试验也不应受到影响
长话短说:您不应该测试
是否使用正确的参数调用,而是
是否呈现预期的标记。Ember的测试套件不支持您尝试实现的目标。我认为这是有充分理由的
Ember的测试套件是围绕应该测试组件的公共API这一理念构建的。如果某个组件使用其他组件来提供其功能,则应将其视为实现细节。它不是公共API的一部分。它可以通过重构组件实现随时更改,而不影响公共API。因此,试验也不应受到影响
长话短说:您不应该测试
是否使用正确的参数调用,而应该测试
是否呈现预期的标记。它不是这样工作的。您不检查trait
值。相反,您可以检查子组件是否呈现了由trait
驱动的内容。它不是这样工作的。您不检查trait
值。相反,您可以检查子组件是否呈现了由trait
驱动的内容。
test('my test', async function(assert){
this.set('someBoolean', true)
await render(hbs`
{{parentComponent}}
`)
// insert code here
});