gpt4 book ai didi

javascript - TestCafe beforeEach 钩子(Hook) - 如何执行一个函数并声明一个变量

转载 作者:搜寻专家 更新时间:2023-11-01 05:19:18 25 4
gpt4 key购买 nike

我正在使用 TestCafe 并寻找一种解决方案来在 beforeEach Hook 中做两件事:1.执行一个功能(每次测试前登录)2.创建独特的测试数据

我可以分别实现两者,但不能在同一个钩子(Hook)中同时实现:

这适用于登录用户:

fixture('My Component')
.beforeEach(login(user, password)
)

这可以为每个测试用例创建新的测试数据:

fixture(`My Component`)
.beforeEach(async t => {
randomLastName = faker.name.lastName();
})

但我还没有找到在一个钩子(Hook)中实现两者的解决方案。而且,我从文档中了解到,使用两个 beforeEach Hook 将导致第一个被覆盖。

我目前的实现是在 beforeEach Hook 中执行登录并在每个测试用例中创建测试数据,这比我想要的更冗长,例如,每个测试用例包含

test('My Test', async (t) => {
let randomLastName = faker.name.lastName();
// ...
}

非常感谢您的建议!

最佳答案

一种解决方案是使用 Test Context在每次测试执行之前准备任何类型的数据上下文

fixture('My Component')
.beforeEach(async (t) => {
// login method
login(user, password);
// inject test data in the test context
t.ctx.inputData = {
randomLastName: faker.name.lastName()
};
});

test('My Test', async (t) => {
// read test data from test context
const inputData = t.ctx.inputData;
const randomLastName = inputData.randomLastName;
// ...
}

关于javascript - TestCafe beforeEach 钩子(Hook) - 如何执行一个函数并声明一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54482013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com