Тестирование localStorage с использованием насмешек или шпионов в приложениях Angular 7 с использованием последней настройки jest - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь выполнить модульное тестирование моего 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();
        }
    }

Насмешка и шпионаж в шутка меня немного смущает, поэтому любые советы или помощь приветствуются.

1 Ответ

0 голосов
/ 29 мая 2019

Это плохая практика для работы с localStorage в ваших компонентах, лучше переместить его логику в отдельный сервис (например, AuthService), и после этого в ваших тестах вы можете подсмотреть методы сервиса spyOn и проверить, что они toHaveBeenCalled

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