когда / как часто использовать Chai-as-promised .notify()

Мы используем Chai-as-promise с транспортиром и огурцом. У меня есть вопрос о методе .notify(callback) в библиотеке chai-as-promised.

Если мы запускаем несколько сценариев с несколькими шагами в каждом. Следует ли вызывать notify() в конце каждого шага?

So

Scenario 1
  Step 1 Expect(promise).to.eventually.to.equal(true).and.notify(callback);
  Step 2 Expect(promise2).to.eventually.to.equal(true).and.notify(callback);
Scenario 2
  Step 3 Expect(promise3).to.eventually.to.equal(true).and.notify(callback);
  Step 4 Expect(promise4).to.eventually.to.equal(true).and.notify(callback);

Я всегда думал, что у нас должен быть только «and.notify (обратный вызов)» на последнем шаге.

So

Scenario 1
  Step 1 Expect(promise).to.eventually.to.equal(true);
  Step 2 Expect(promise2).to.eventually.to.equal(true).and.notify(callback);
Scenario 2
  Step 3 Expect(promise3).to.eventually.to.equal(true);
  Step 4 Expect(promise4).to.eventually.to.equal(true).and.notify(callback);

У меня есть аналогичный вопрос на странице github. https://github.com/domenic/chai-as-promised/issues/65


person Brad8118    schedule 06.08.2014    source источник


Ответы (1)


До CucumberJS v0.5.0 все определения шагов нужно было определять с аргументом callback, который нужно было вызывать после завершения выполнения шага.

В v0.5.0 обновили библиотеку, чтобы аргумент callback больше не был нужен. Из их CHANGELOG:

Новые особенности

  • Обещания поддержки из определений шагов (Уилл Фаррелл)
  • Поддержка синхронных определений шагов (Жюльен Биземанс)

Хотя возвращаемое значение из chai-as-promised утверждений не является настоящим обещанием, их интерфейс достаточно похож, чтобы CucumberJS относился к ним как к обещаниям. Итак, чтобы ответить на ваш вопрос:

  • До CucumberJS v0.5.0 вы должны вызывать notify() в конце каждого шага.
  • После CucumberJS v0.5.0 вам не нужно вызывать notify() в конце любого шага.
person Nathan Thompson    schedule 27.01.2016