Модульное тестирование функции даты с использованием Jasmine in Angular - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь проверить функцию, используя дату в качестве аргумента в Angular .Angular использует жасмин в качестве основы тестирования.

У меня есть функция, подобная приведенной ниже, которая включает манипулирование датами

getDate(date) {
    const d = new Date(date);
    d.setHours(0, 0, 0, 0);
    return d;
  }

Я хочу написать модульный тест для вышеуказанной функции, используяЖасмин Я написал следующий тест.

describe('Service', () => {
  let testMockDate: Date;
  beforeEach(() => {
    jasmine.clock().uninstall();
    jasmine.clock().install();
    testMockDate = new Date('2019-09-15T05:00:00Z');
    jasmine.clock().mockDate(testMockDate);

    TestBed.configureTestingModule({
      imports: [RouterTestingModule, HttpClientTestingModule],
      providers: [Service]
    });
  });

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

  it('check date', inject(
      [Service],
      (service: Service) => {
        const dateString = service.getDate(testMockDate);
        expect(dateString).toEqual('2019-09-15T00:00:00Z');
      }
   ));
});

Этот тест проходит у меня локально, но на сервере, где часовой пояс отличается, он не проходит.Как можно эффективно проверить эту функцию.Я думал, что передача аргумента в конструктор даты даст мне одну и ту же дату в другом часовом поясе.но значения зависят от часового пояса.Хотя я также издеваюсь, используя Жасмин, но я не уверен, что она работает правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...