我有一个烦人的问题,count()
更改后没有更新。我的测试设置了一些输入值,然后运行以下命令:
$$('.label-entry').count().then(beforeCount => {
btnSaveLabel.click();
browser.waitForAngular();
$$('.label-entry').count().then(count => expect(count).toEqual(beforeCount + 1));
});
测试应该单击进行 API 调用的保存按钮,等待该调用结束,并检查divs 的 # 是否增加了 1(手动测试时会增加(。不知何故,测试设法失败了。对count()
的第一次调用工作正常,但第二次调用无法正常工作。我在这里错过了什么?
<div class="label-entry" *ngFor="let labelEntry of labelEntries">
嗯......也许你不需要你的第二个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);
});