Zgodnie z przykładem podanym w oficjalnym dokumentacja,
describe("Mocking the Date object", function(){
it("mocks the Date object and sets it to a given time", function() {
var baseTime = new Date(2013, 9, 23);
jasmine.clock().mockDate(baseTime);
:
});
});
Zgłasza się jasmine.clock is not a function
. Korzystam z następujących zależności w moim projekcie
"devDependencies": {
"jasmine": "^2.5.2",
"jasmine-node": "^1.14.5"
}
Próbowałem też sfałszować obiekt Date. Ale odkąd jestem w węźle nie w przeglądarce, nie mogę / znaleźć window
wyśmiać dowolną metodę.
Odpowiedzi:
0 dla odpowiedzi № 1Najpierw musisz zainstalować jaśminowo-makiety.
Następnie wykonaj następujące testy:
describe("Mocking the Date object", function () {
it("mocks the Date object and sets it to a given time", function () {
var baseTime = new Date(2013, 9, 23);
jasmine.clock().install();
jasmine.clock().mockDate(baseTime);
jasmine.clock().tick(50);
expect(new Date().getTime()).toEqual(baseTime.getTime() + 50);
});
});
Mam nadzieję, że to pomoże.
0 dla odpowiedzi nr 2
Odkryłem, że używam nieoficjalnego jaśminubiblioteka. Powinienem więc użyć "jaśminowego rdzenia" zamiast "jaśminowego węzła", aby uzyskać wsparcie dla najnowszego jaśminu. Jednak wciąż nie udawało się sfałszować dat.
Więc oddzieliłem funkcję, aby zwrócić datę. następnie;
- Wyeksportowałem funkcję, aby można było z niej wyśmiewać. Użyłem jaśminu
spyOn
wyśmiać zachowanie funkcji daty. - Znalazłem bibliotekę npm
rewire
która pomaga uzyskać dostęp do prywatnych zmiennych lub metod modułu nodejs. Więc może być również używany dospyOn
Funkcja daty zamiast eksportować ją tylko z powodu kpiny.