【发布时间】:2020-07-14 11:27:56
【问题描述】:
最近,我在运行 E2E 测试时遇到了一些错误,我所做的唯一更改是在原始测试代码中添加 checkColumns 逻辑,如下所示:
it('check search and sort', async () => {
await checkLoadingAndResult();
await checkColumns(table, ...columns); //newly added
await checkTableSorting();
});
checkColumns的逻辑是这样的:
export async function checkColumns(table: Table, ...columns: string[]) {
for (const col of columns) {
expect(await table.isColumnDisplayed(col)).toBeTruthy(`${col} is not displayed`)
}
}
错误信息如下:
Error: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:59536
我认为 checkColumns 函数可能有问题,我不知道在 for 循环中调用异步方法是否正确。我猜这个for循环是错误的原因。
【问题讨论】:
-
假设
table.isColumnDisplayed返回一个承诺(是一个async函数),那么是的,你调用它的方式就可以了。 -
感谢 T.J.Crowder! table.isColumnDisplayed() 返回一个承诺。我已经为 ECONNREFUSED 错误苦苦挣扎了一整天。也许我需要找到导致此错误的其他原因。
-
请显示函数isColumnDisplayed()的代码。并澄清您的代码即使现在也可以在没有
await checkColumns(table, ...columns);的情况下通过。正如djiss所说,根据我的经验,您的错误似乎与checkColumns()无关。
标签: javascript angular async-await protractor angular-e2e