Что является хорошей практикой для изменения тайм-аута по умолчанию глобально или только для одного теста?кофе мокко - PullRequest
1 голос
/ 24 марта 2019

Я использую before ловушку с блоком try catch для вызова некоторых функций внутри моего блока try. Таким образом, блок before запускается перед каждым it.

describe('Function response', ()=> {
  // this.timeout(5000); //here
  let response;
  before(async () => {
   // this.timeout(500000); //or here
    try {
      response = await myFunction(argument);
    } catch (err) {
      assert.fail(err);//seems doesn't work
    }
  });
  it('function response to be an array', () => {
    expect(response).to.be.an('array');
  });
});

Я получаю эту ошибку

Ошибка: превышено время ожидания 2000 мс. Для асинхронных тестов и хуков убедитесь, что вызывается «done ()»; если вы возвращаете обещание, убедитесь, что оно разрешено.

После открытия одного из комментариев, которые изменяют время ожидания по умолчанию после того, как, конечно, установили функции стрелок на обычные, тест работает должным образом.
Я хотел бы знать, что является лучшей практикой. Может быть, лучше изменить время ожидания по умолчанию в скрипте test?

"test": "mocha -r ts-node/register src/**/*.spec.ts --timeout 5000

Также, возможно, я неправильно обрабатываю ошибку в блоке catch?

1 Ответ

1 голос
/ 24 марта 2019

Рекомендуется устанавливать тайм-аут в нужной области:

describe('something', function() {
  this.timeout(100);  // sets the timeout for everything in "describe"

  before(function(done) {
    this.timeout(500);  // sets the timeout ONLY for "before"
    setTimeout(done, 450);  // <= this works
  });

  it('should do something', function (done) {
    setTimeout(done, 150);  //  <= this times out
  });
});
  • Если вам нужно определенное время ожидания для всех ваших тестов, установите его на глобальном уровне
  • Если вам нужно определенное время ожидания для всего в пределах describe, установите его в describe
  • Если вам нужно определенное время ожидания для one before, it и т. Д., Установите его в этой функции
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...