0

私のアプリケーションにember-bootstrapがインストールされています。次に、私はログインフォームコンポーネントを作成しました。 app/templates/components/login-form.hbsEmber統合テストコンポーネントがコンポーネント内にあります

は、以下の通り2ブートストラップ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を特定していないようです。 input

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

、私はundefined結果を得ます。ブートストラップのform.groupコンポーネントの入力をコンポーネントテストで使用する適切な方法は何ですか?

答えて

2

私はあなたがテスト内でコンポーネントをレンダリングするのを忘れてしまったと思います。次のものを追加する必要があります:

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

何かをアサートする前に、また、2番目のアサーションを変更して、コンポーネント内の2番目の入力をアサートする必要があります。とにかく;あなたのコンポーネントをコピーし、あなたのテストを次のように修正しました:twiddle。私はそれが助けて欲しい

+0

質問を編集しましたが、それでも同じトピックです。また、スクリーンショットを追加しました。テストで '{{form.group}}'、 '{{bs-button}}'と '{{bs-form}} 'でレンダリングする方法を知っていますか?多分それは私が探している答えです。 –

+1

私は提供したひねりをチェックしましたか? – alptugd

+0

ありがとうございます。私はちょっとテストして新しく、Twiddleを見せてくれてありがとう。できます。 –

関連する問題