簡體   English   中英

Mocha/Chai 節點測試中的“之前”和“描述”塊中的操作順序

[英]Order of Operations in `before` and `describe` blocks in Mocha/Chai Node Tests

為了嘗試了解我的一個 Mocha 測試的執行順序(我看到函數執行亂序),我創建了以下簡單的測試用例:

describe("methods", function () {
  before(async function () {
    console.log('---------- BEFORE ------------');
    let sum = 1 + 2;
    console.log('sum: ', sum);
  });
  describe("test case", async function () {
    console.log('---------- AFTER ------------');
  });
});

同樣,我想在這里檢查的是操作順序。 果然,在這種情況下,打印到控制台的所有內容都是------------ AFTER ------------ 來自before塊的日志記錄根本不會顯示在控制台中。

為什么是這樣? 我在這里想念什么?

在我的實際測試用例中,我使用before塊來創建和保存文檔。 然后在下一個describe塊中,我在數據庫中查找它。 當我遇到在創建之前查找文檔的問題時,我決定做一些更簡單的測試。 因此,您在上面看到了什么。

這是因為“之前”塊在IT之前執行

嘗試執行此操作:

describe("methods", function () {
  before(async function () {
    console.log('---------- BEFORE ------------');
    let sum = 1 + 2;
    console.log('sum: ', sum);
  });
  it('should be a test', function(){

    console.log('test');

  });
  describe("test case", async function () {
    console.log('---------- AFTER ------------');
  });
});

有關更多信息,請參閱此帖子: https://gist.github.com/samwize/8877226

暫無
暫無

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

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