2017-03-15 1 views
1

受け入れテストでコントローラのプロパティ値を変更する方法はありますか?受け入れテストの中でコントローラーのプロパティー値を変更するには?

test('should add new post', function(assert) { 
    visit('/posts/new'); 
    fillIn('input.title', 'My new post'); 
    click('button.submit'); 
    andThen(() => assert.equal(find('ul.posts li:first').text(), 'My new post')); 
}); 

たとえば、テストを実行する前に入力のデフォルト値を設定したいとします。

+0

をご覧くださいは覚えておいてくださいこのような。 DOMのやりとりで目的の状態にするか、このテストをインテグレーションまたはユニットに移動する必要があります。 – dwenzel

+0

または、受け入れテストのスタブモデル()を変更する方法がありますか? –

+0

データをスタブするのにあなたは何を使用していますか?私は非常に 'ember-cli-mirage'を勧めます:http://www.ember-cli-mirage.com/。これにより、各テストに必要なカスタムオブジェクトを使用してモックデータベースを設定できます。 – dwenzel

答えて

2

アプリケーションレジストリにアクセスし、コントローラをルックアップできます。

moduleForAcceptanceはアプリケーションを設定します。受け入れテストは、あなたのアプリケーションが実際にユーザーとの対話に応じて、どのように機能するかをシミュレートすることになっているので、手動でコントローラのプロパティを変更するために通常は良い考えではありません。

test('should add new post', function(assert) { 
    let controller = this.application.__container__.lookup('controller:posts/new'); 
    controller.set('val', 'default'); 

    visit('/posts/new'); 
    fillIn('input.title', 'My new post'); 
    click('button.submit'); 
    andThen(() => assert.equal(find('ul.posts li:first').text(), 'My new post')); 
}); 

this twiddle

関連する問題