Я пытаюсь выполнить модульное тестирование моего Angular 7 приложения с использованием jest и хочу проверить, вызывается ли метод путем установки localStorage.Но я понимаю, что установка реального localStorage не идеальна при тестировании, поэтому приходится использовать mocks или spies .Поскольку я новичок в модульном тестировании, я хотел бы знать, есть ли лучший метод для проверки этого и правильный ли мой подход.
Я в основном спрашиваю об этом снова здесь из-за этот вопрос.Он говорит, что Jest теперь предоставляет поддержку localStorage из коробки.Итак, в следующей методологии, localStorage поддразнивается автоматически или мой подход неверен?
login.component.spec.ts
test('Call onSubmit() when localStorage is set', () => {
const mockSubmit = jest.spyOn(component, 'onSubmit');
localStorage.setItem('auth', 'abcd');
component.ngOnInit();
expect(mockSubmit).toBeCalled();
});
login.component.ts
ngOnInit(): void {
if (localStorage.getItem('auth') !== null) {
this.onSubmit();
}
}
Насмешка и шпионаж в шутка меня немного смущает, поэтому любые советы или помощь приветствуются.