【问题标题】:How can we use async/await inside describe?我们如何在描述中使用 async/await?
【发布时间】:2019-08-01 10:07:42
【问题描述】:

我一直在尝试为我的项目执行以下端到端测试。 我有一系列页面。每个都包括一个页面名称和所涉及的步骤列表。 但是要获取这些页面,我需要进行异步调用。因此,'it' 方法没有被执行。

我需要为我的所有页面迭代 'it' 方法。

describe('Test Suite', () => {
    let pages: Page[]; //Page = { Name: string, testSteps: string[] } 
    beforeAll(async () => {
        pages = await service.GetPages();
    });
    pages.forEach((page) => {
        it("Test Cases", () => {
            return executePageTests(page);
        });
    });
});

【问题讨论】:

  • describe('Test Suite', async () => { let pages = await service.GetPages(); pages.forEach((page) => { it("Test Cases", () => { ... }) ...怎么样
  • 我也试过了,但还是不行。请通过这个link

标签: typescript karma-jasmine e2e-testing


【解决方案1】:

Jasmine 不直接支持 Promises。它确实支持asynchronous callbacks via a done function,但仅支持beforeEachitafterEach,不支持describe。换句话说,您不能进行异步调用来生成测试用例,这很有意义,因为您希望测试发现更快。

您可以期望的最好结果是拥有一个执行所有测试用例的测试。

   it("Test all cases", done => { 
     service.GetPages().then(pages => { 
        pages.forEach(executePageTest);
        done();
     });
   })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2021-10-10
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多