Nie chcę czytać kodu godzin, aby znaleźć odpowiednią część, ale jestem ciekawy jak jaśmin realizuje swój zegar. Ciekawe jest to, że może przetestować kod asynchroniczny z kodem testowania synchronizacji. AFAIK, z obecnym plikiem node.js, który obsługuje ES5, nie jest to możliwe (funkcje asynchroniczne są zdefiniowane w ES7). Czy analizuje kod js z czymś podobnym do estraverse i buduje test asynchroniczny z synchronizatora?Jak działa zegar jaśminowy?
tylko przykładem tego, co mówię:
it("can test async code with sync testing code", function() {
jasmine.clock().install();
var i = 0;
var asyncIncrease = function() {
setTimeout(function() {
++i;
}, 1);
};
expect(i).toBe(0);
asyncIncrease();
expect(i).toBe(0);
jasmine.clock().tick(2);
expect(i).toBe(1);
jasmine.clock().uninstall();
});
W tutaj expect(i).toBe(1);
powinny być w zwrotnego.
To nie zadziała w prawdziwym kodzie asynchronicznym, np. przez połączenie db? – inf3rno
@ inf3rno W przypadku ajaxów, chciałbyś wyśmiewać wywołanie ajax (zakładając, że serwer działa) lub testy integracyjne, w rzeczywistości pozwól mu być asynchronicznym. – m59
Ok. Pracuję nad strukturą asynchroniczną dla ES5, dlatego zapytałem. Dzięki! :-) – inf3rno