Я пытаюсь написать среду тестирования 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), который использует Жасмин, и я предполагаю, что именно это и делается "за" засцен, но я не могу найти исходный код для этого.
Может кто-нибудь помочь мне написать эти асинхронные тесты?Я был бы очень признателен, если бы посмотрел, как именно это работает, но я бился головой об этом целую вечность без удачи.
Спасибо!