Ember JS testing: Тестирование компонента внутри компонента. - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в Ember, и я пытаюсь научиться писать тесты.

На данный момент у меня есть компонент, давайте назовем его «ParentComponent» и для упрощения он выглядит так .

<div>
    <div class="childDiv">
        {{childComponent trait=someBoolean}}
    </div>
    <div>
        other stuff
    </div>
</div>

Я пишу тест компонента интеграции для ParentComponent, и я хотел бы проверить, чтобы убедиться, что "trait" верен. someBoolean определяется внутри ParentComponent и может иметь значение true или false. На данный момент мой тест выглядит примерно так:

test('my test', async function(assert){
    this.set('someBoolean', true)
    await render(hbs`
    {{parentComponent}}
    `)
    
    // insert code here
});

В строке «вставьте здесь код» я хотел бы иметь возможность проверить, что свойство childComponent действительно равно true.

1 Ответ

2 голосов
/ 15 июля 2020

То, что вы пытаетесь достичь, не поддерживается набором для тестирования Ember из коробки. На мой взгляд, на это есть веские причины.

Набор тестов Ember построен на идее, что publi c API компонента должен быть протестирован. Если компонент использует другие компоненты для обеспечения своих функций или нет, это следует рассматривать как деталь реализации. Это не часть API publi c. Он может измениться в любое время путем рефакторинга реализации компонента, не затрагивая API publi c. Следовательно, это также не должно влиять на тесты.

Короче говоря: вы не должны проверять, вызывается ли <ChildComponent /> с правильными аргументами, но если <ParentComponent /> отображает ожидаемую разметку.

...