我正在使用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
});