Javascript EmberJS测试:在组件内部测试组件

Javascript EmberJS测试:在组件内部测试组件,javascript,ember.js,Javascript,Ember.js,我是Ember的新手,我正在努力学习如何编写测试 现在我有了一个组件,我们把它叫做“ParentComponent”,为了简化,它看起来是这样的 <div> <div class="childDiv"> {{childComponent trait=someBoolean}} </div> <div> other stuff </div> </di

我是Ember的新手,我正在努力学习如何编写测试

现在我有了一个组件,我们把它叫做“ParentComponent”,为了简化,它看起来是这样的

<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
});