2017-11-16 7 views
0

変更後にcount()が更新されないという厄介な問題があります。私のテストでは、いくつかの入力値を設定し、次を実行します:分度器のwaitForAngularまたは.count()が動作しない

$$('.label-entry').count().then(beforeCount => { 
    btnSaveLabel.click(); 
    browser.waitForAngular(); 
    $$('.label-entry').count().then(count => expect(count).toEqual(beforeCount + 1)); 
}); 

のdivの#が持っている場合、テストは、API呼び出しを行う[保存]ボタンをクリックして最後にそのコールを待つ、とチェックすることになっています1つ増えます(手動でテストする場合)。どうにかして、テストは失敗するように管理します。 count()への最初の呼び出しは正常に動作しますが、2番目の呼び出しは正常に動作しません。私はここで何が欠けていますか?

<div class="label-entry" *ngFor="let labelEntry of labelEntries"> 
+0

を私はあなたを言うだろう2番目の 'then()'で関数を作る中括弧 '{}'を見落とすかもしれません。また、「カウント」という言葉を変数として使用しないことを奨励しています...それは混乱します。 '.then(cnt => {expect(cnt).toEqual(beforeCount + 1)}); ' –

+0

このためにいくつかのフィドルを提供する – suvroc

答えて

0

expectはすでにあなたの約束を解決する必要がありますので、うーん...多分あなたは、あなたの第二then()を必要としません。

$$('.label-entry').count().then(beforeCount => { 
    btnSaveLabel.click(); 
    browser.waitForAngular(); 
    expect($$('.label-entry').count()).toEqual(beforeCount + 1); 
}); 

または最終的にこの:

$$('.label-entry').count().then(beforeCount => { 
    btnSaveLabel.click(); 
    browser.waitForAngular(); 
    //wrap it in a browser.wait() to see, if you get the result before timeout 
    browser.wait(expect($$('.label-entry').count()).toEqual(beforeCount + 1), 5000); 
}); 

または最終的には、この(実験が):

あなたはこの試みることができますあなたの例に基づいて

$$('.label-entry').count().then(beforeCount => { 
    btnSaveLabel.click(); 
    browser.waitForAngular(); 
    browser.wait(($$('.label-entry').count() > beforeCount), 5000); 
    expect($$('.label-entry').count()).toEqual(beforeCount + 1); 
}); 
関連する問題