为何TestCafe无法识别含Selector与常量的表达式断言?
问题原因解析
- TestCafe里
Selector('some-expression').count返回的不是直接的数字值,而是一个Promise对象。 - 第一种写法里,你直接拿Promise和
someConstVar做减法运算,JavaScript会把Promise转换为数值类型,结果就是NaN,断言自然无法得到预期结果。 - 第二种写法中,
t.expect()方法支持接收Promise作为参数,TestCafe会自动等待这个Promise解析出真实的count数值,再和右边预先计算好的1 + someConstVar(普通数字)做相等性校验,所以能正常运行。
如果非要在断言里做减法运算,也可以先手动解析Promise拿到真实数值:
const actualCount = await Selector('some-expression').count; await t.expect(actualCount - someConstVar).eql(1);
内容的提问来源于stack exchange,提问作者Litchy
相关产品推荐
相关产品推荐

