Я пытаюсь проверить функцию, используя дату в качестве аргумента в 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');
}
));
});
Этот тест проходит у меня локально, но на сервере, где часовой пояс отличается, он не проходит.Как можно эффективно проверить эту функцию.Я думал, что передача аргумента в конструктор даты даст мне одну и ту же дату в другом часовом поясе.но значения зависят от часового пояса.Хотя я также издеваюсь, используя Жасмин, но я не уверен, что она работает правильно.