我编写了一个类似于下面的格式的量角器测试,我在一个元素列表上映射一个断言(在本例中是一个ElementArrayFinder)。
it("all dropdowns should be enabled", done => {
....
elemArrayFinder.map((elem, idx) => {
expect(elemArrayFinder.get(idx).isEnabled()).toBeTruthy();
done();
})
});
我的问题是调用done() - 看起来这是在第一个断言上调用的,而不是在所有断言完成之后。这是否意味着Jasmine / Protractor将继续进行下一次测试,即使继续在元素列表中进行断言?有没有办法只在列表项上的所有断言完成时调用done()?
答案 0 :(得分:3)
由于map
是一个循环,因此在给定代码时,应在第一个循环中调用done()
。您应该能够省略done()
,它应该可以工作。那就是说,为了回答你的问题,你做了这样的事情(虽然请不要这样做:)):
it("all dropdowns should be enabled", done => {
....
elemArrayFinder.map((elem, idx) => {
expect(elemArrayFinder.get(idx).isEnabled()).toBeTruthy();
}).then(done);
});