Ember Integration Test Компонент внутри компонента

Я установил ember-bootstrap в моем приложении. Затем я создал компонент формы входа.

в app/templates/components/login-form.hbsЕсть 2 Bootstrap input и 1 button, которые следующие:

{{#bs-form onSubmit=(action "login") as |form| }}
    {{#form.group validation=emailValidation}}
        <label for="email">Email</label>
        <input id="email" value={{email}} name="email" class="form-control" oninput={{action (mut email) value="target.value"}} type="text" placeholder="Email" required>
    {{/form.group}}
    {{#form.group validation=passwordValidation}}
        <label for="password">Password</label>
        <input id="password" value={{password}} name="password" class="form-control" oninput={{action (mut password) value="target.value"}} type="password" placeholder="Password" required>
    {{/form.group}}
    {{bs-button defaultText="Login" type="primary" buttonType="submit"}}
{{/bs-form}}

Когда я делаю интеграционное тестирование в Компонентах, это, кажется, не идентифицирует this,

test('it renders', function(assert) {
  assert.expect(3);
  assert.equal(this.$('input').attr('name'),'email','has Email');
  assert.equal(this.$('input').attr('name'),'password','has Password');
  assert.equal(this.$('button').text(),'Login','has Login');
});

в input, Я получил undefined Результаты. Как правильно называть ввод для form.group компонент в Bootstrap, который будет использоваться в тестировании компонентов?

1 ответ

Решение

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

this.render(hbs`{{login-form}}`);

прежде чем что-то утверждать. Вам также нужно изменить второе утверждение, чтобы подтвердить второй вход в пределах вашего компонента. Тем не мение; Я скопировал ваш компонент и исправил ваш тест в следующем примере. Я надеюсь, что это помогает.

Другие вопросы по тегам