微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在测试中使用变量在 beforeAll() 钩子中分配了值

如何解决如何在测试中使用变量在 beforeAll() 钩子中分配了值

我想在 beforeAll() 钩子中分配一堆带有值的变量,然后在 test.each([]) 中使用它们,但我得到的只是未定义而不是实际值。

但是当我尝试访问普通 test() 中的相同变量时,结果证明我的变量具有实际值并且不是未定义的。

有没有办法给变量赋值,然后在 test.each([]) 中使用它们?

let movieId: string;
let serialId: string;

describe('Video page tests',() => {

  beforeAll(async () => {
    movieId = await videos.CreateMovie();
    serialId = await videos.CreateSerial();
  });

test.each([
    ['Deletes movie',movieId],['Deletes serial',serialId],])('%s',async(caseTitle,entityId) => {
    reporter.description(`${caseTitle}`);

    await videos.DeleteContent(entityId); //entityId is undefined
  })

test('Deletes movie',async() => {
    reporter.description(`Deletes movie`);

    await videos.DeleteContent(movieId); //movieId is correct
  })

解决方法

事实证明,我不能在 test.each 处使用变量,该变量在 beforeAll 钩子处分配,所以我想出了解决问题的方法

let content: string[] = [];
describe('Video page tests',() => {

  beforeAll(async () => {
    content.push(await videos.CreateMovie());
    content.push(await videos.CreateSerial());
  });

test.each([
    ['Deletes movie',0],['Deletes serial',1],])('%s',async(caseTitle,entityId) => {
    reporter.description(`${caseTitle}`);

    await videos.DeleteContent(content[entityId]);
  })

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。