摩卡测试 – 完全完成"before",然后运行"it"



我正在使用Mocha 6.1.4运行一些测试(在WebdriverIO 5.11.6下(。我想在before完成某些东西的执行(阅读:通过HTTP调用存储一些值(,然后开始运行测试-it研究员。基本上,做每一个,就好像它是同步调用一样。这是我正在使用的(打字稿(代码的(摘录(:

// file: ./test/service.spec.ts
describe("#this stuff", () => {
  before(() => {
    browser.url("login-url");
  });
  beforeEach(() => {
    const service: TheService = new TheService();
    return service.setUp(); // ...superagent returns a Promise
  });
  it("should-do-it", () => {
      // ...test + expectations here
    });
  });
});

// ./src/the-service.ts
import * as superagent from "superagent";
// ...
public setUp() {
  return superagent.post(this.uri)
      .accept("application/json")
      .set("Content-Type", "application/json")
      .send(body)
      .then();
}

如果我正确理解了 Mocha 文档(以及 StackOverflow 中的一些问题/答案(,在内部返回一个Promise beforeEach这就是我完成此操作所需的全部内容,但到目前为止,它不起作用。

我发现的唯一一致的方法是将it方法的内容作为setUp()的回调执行:

// ...inside `it`
service.setUp().then(() => {
  // ...test + expectations here
});

精通 ECMAScript/TypeScript 世界的人能在这里提供一些启示吗?

试试这个

beforeEach(async () => {
  const service: TheService = new TheService();
  await service.setUp(); // ...superagent returns a Promise
});

相关内容

最新更新