/ / Jak spylić randkę z jaśminowym węzłem - node.js, jaśminem

Jak spylić randkę z jaśminowym węzłem - node.js, jaśminem

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 № 1

Najpierw 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;

  1. Wyeksportowałem funkcję, aby można było z niej wyśmiewać. Użyłem jaśminu spyOn wyśmiać zachowanie funkcji daty.
  2. 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 do spyOn Funkcja daty zamiast eksportować ją tylko z powodu kpiny.