Как смоделировать конкретный объект, возвращаемый в ответ на вызов функции? - PullRequest
0 голосов
/ 24 сентября 2019

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

this.device = major.get('alp").devC === 'devType';

Это происходит в конструкторе компонента.Я хочу высмеивать то же самое в моем тестовом шутнике, и я сделал следующее:

jest.spyOn(major, 'get').mockImplementation(() => {
            return { devC: 'devType2' };
        });

Я проверил и вижу, что мой код входит в мой макет и возвращает значения правильно, но когда язапустить тестовые случаи, я получаю devC из неопределенного.

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

1 Ответ

0 голосов
/ 25 сентября 2019

Я думаю, что нашел решение проблемы.Так что проблема в том, где вы положили jest.spyOn.Так как у меня был вызов метода внутри конструктора, было важно поместить шпиона еще до того, как мы создадим экземпляр оболочки, или даже прежде, чем мы возьмем ссылку на компонент в shallow / mount.

Если у вас естьлюбое такое требование, чтобы шпионить за методом в вызове конструктора, вам лучше всего поставить шпион первым в вашем тестовом случае или в beforeEach () (если вы хотите, чтобы он был применим во всех тестовых случаях).

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