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}}`);
прежде чем что-то утверждать. Вам также нужно изменить второе утверждение, чтобы подтвердить второй вход в пределах вашего компонента. Тем не мение; Я скопировал ваш компонент и исправил ваш тест в следующем примере. Я надеюсь, что это помогает.