javascript Jasmine과 모의 날짜 생성자




2 Answers

재스민 예제에서,

jasmine.clock().install();
var baseTime = new Date(2013, 9, 23);
jasmine.clock().mockDate(baseTime);
jasmine.clock().tick(50)
expect(new Date().getTime()).toEqual(baseTime.getTime() + 50);


afterEach(function () {
    jasmine.clock().uninstall();
});

재스민 데이트

jasmine start

선택적 인수로 날짜를 사용하는 함수를 테스트하고 있습니다. 인수없이 함수를 호출하면 새 Date 객체가 만들어 졌음을 주장하고 싶습니다.

var foo = function (date) {
  var d = date || new Date();
  return d.toISOString();
}

new Date 가 호출되었다고 어떻게 주장합니까?

지금까지 나는 다음과 같은 것을 가지고있다 :

it('formats today like ISO-8601', function () {
  spyOn(Date, 'prototype');
  expect().toHaveBeenCalled();
});

참조 : https://github.com/pivotal/jasmine/wiki/Spies




Jasmine의 Edge 버전을 사용하는 사용자의 경우 :

it('Should spy on Date', function() {
    var oldDate = Date;

    // and.callFake
    spyOn(window, 'Date').and.callFake(function() {
        return new oldDate();
    });

    var d = new Date().toISOString;

    expect(window.Date).toHaveBeenCalled();
});



Related