Порядок операций в блоках `before` и` description` в тестах Mocha / Chai Node - PullRequest
0 голосов
/ 22 октября 2019

Чтобы попытаться понять порядок выполнения одного из моих тестов 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 блоке я смотрю его в БД. Когда я столкнулся с проблемами, когда документ просматривался до того, как произошло создание, я решил сделать несколько более простых тестов. Отсюда то, что вы видите выше.

1 Ответ

1 голос
/ 22 октября 2019

это из-за того, что блок "before" выполняется просто перед и IT block

попытатьсявыполните это:

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

...