我正在尝试使用别名在 before
和 beforeEach
钩子之间共享值 . 如果我的值是一个字符串,它当前有效,但当值是一个对象时,别名只在第一个测试中定义,之后的每个测试 this.user
在我的beforeEach钩子中未定义 . 如何在测试之间共享作为对象的值?
这是我的代码:
before(function() {
const email = `test+${uuidv4()}@example.com`;
cy
.register(email)
.its("body.data.user")
.as("user");
});
beforeEach(function() {
console.log("this.user", this.user); // This is undefined in every test except the first
});
1 回答
通过
cy.get('@user')
或expect(user)
语法访问别名变量 . 我理解这是因为某些命令本质上是异步的,因此使用包装器访问变量可确保在使用之前解析它 .请参阅文档Variables and Aliases和get .
如果要访问全局
user
值,可以尝试类似的方法then
解析就像一个承诺,但你应该警惕延迟解决 -console.log
可能会在then
之前运行 .