JavaScript асинхронное тестирование - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь написать среду тестирования Javascript с нуля, и сейчас я пытаюсь заняться асинхронным тестированием.В частности, я пытаюсь выяснить, как работает парадигма «сделано» Жасмин.Код, который у меня сейчас есть:

const asyncEnsure = function(title, block, assertion) {
  let done = false;
  let cleared = false;
  let complete = function() { done = true; };

  block(complete)

  let interval = setInterval(function() {
    if (done === true) {
      cleared = true
      clearInterval(interval);
    }
  }, 1);

  let interval2 = setInterval(function() {
    if (cleared === true) {
      ensure(title, assertion)
      clearInterval(interval2)
    }
  }, 1)
}; 

И я думаю, что интервал 2, содержащий утверждение, сработает только после завершения первого блока (который содержит весь тест, кроме утверждения).Но это не работает - все тесты проходят ...

Я видел старый синтаксис (run и waitsFor), который использует Жасмин, и я предполагаю, что именно это и делается "за" засцен, но я не могу найти исходный код для этого.

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

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...