簡體   English   中英

摩卡咖啡測試–完全在“之前”完成,然后運行

[英]Mocha tests – finish “before” completely, then running “it”s

我正在使用Mocha 6.1.4 (在WebdriverIO 5.11.6 )運行一些測試。 我想完成的東西在執行 before (讀:通過HTTP調用存儲一些值),然后開始運行測試-在it的同伴。 基本上,將Everythig視為同步調用。 這是我正在使用的(TypeScript)代碼的一部分(摘錄):

// 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中的一些問題/解答),還需要在beforeEach返回一個PromisebeforeEach是我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
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM