我有这个令人讨厌的问题,其中count()
在更改后没有更新。我的测试设置了一些输入值,然后执行以下操作:
$$('.label-entry').count().then(beforeCount => {
btnSaveLabel.click();
browser.waitForAngular();
$$('.label-entry').count().then(count => expect(count).toEqual(beforeCount + 1));
});
测试应该单击一个进行API调用的保存按钮,等待该调用结束,并检查div的数量是否增加了1(手动测试时是这样)。不知何故,测试设法失败了。对count()
的第一次呼叫正常,但第二次呼叫没有。我在这里缺少什么?
<div class="label-entry" *ngFor="let labelEntry of labelEntries">
答案 0 :(得分:0)
嗯......也许你不需要你的第二个then()
,因为expect
应该已经解决了你的承诺。
你可以试试这个:
$$('.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);
});