如何在Cypress中合并两个不同的断言?
合并断言的实现方式
你可以借助可选链语法将两条校验合并为单条断言,代码示例如下:
assert.isNotNull(res.body?.createdAt, "res.body 及其 createdAt 属性均不为 null");
原理解释
- 可选链
?.会先判断左侧的res.body是否为 null/undefined,如果为空,整个表达式会直接返回 undefined,不会抛出读取不存在属性的报错 - 此时只要
res.body?.createdAt的校验结果不为空,就同时满足了res.body不为空、res.body.createdAt不为空两个原有校验规则
如果你的测试框架支持嵌套属性断言,也可以使用更易读的写法,以 Chai 断言库为例:
expect(res).to.have.nested.property('body.createdAt').that.is.not.null;
这种写法的报错提示会更精准,可以直接定位是res.body不存在还是res.body.createdAt为空。
内容的提问来源于stack exchange,提问作者Luna
相关产品推荐
相关产品推荐

