Плагин vscode-jest показывает успех, когда тест явно проваливается - PullRequest
0 голосов
/ 01 апреля 2020

Я использую расширение vscode под названием «Jest» версии 3.1.1, одна из его функций - показывать, когда тесты проходят и не проходят в IDE.

Если я запускаю тест через yarn test i получить ожидаемый результат, и издевательства происходят, как ожидалось. Если я нажимаю «отладка» над ошибочным тестом и запускаю тестирование полностью, оно проходит, и ложные срабатывания происходят в зависимости от ситуации.

Однако, если я позволю среде IDE работать и покажу / не выполнит встроенные проходы / провалы, то этот конкретный тест пройдет неудачно, когда он действительно должен пройти, поскольку результат зависит от проверенных значений.

Сбой происходит из-за того, что макет не устанавливается, когда он должен, и, таким образом, запускает реальный код, который в данном случае совершенно неверен.

ниже приведен фрагмент кода, который я пытаюсь передать через ide.

it('should return valid if email or mobile is valid', () => {
    const expectedResult = resultHelper();

    //'This should mock the return value...
    mockValidateEmail.mockReturnValueOnce(resultHelper(true));
    mockValidateMobile.mockReturnValue(resultHelper(false));
    const resultGoodEmail = ValidateBoth('aaa');
    expect(resultGoodEmail).toEqual(expectedResult);

    mockValidateEmail.mockReturnValue(resultHelper(false));
    mockValidateMobile.mockReturnValue(resultHelper(true));
    const resultGoodMobile = ValidateBoth('aaa');

    expect(resultGoodMobile).toEqual(expectedResult);
  });

Есть ли что-то, чего мне не хватает на фронте vscode? Я не уверен, где продолжать искать.

1 Ответ

0 голосов
/ 04 апреля 2020

Нашел ответ на мой собственный вопрос.

Плагин vscode-jest будет имитировать зависимости на основе явного импорта, что означает, что если вы тестируете сервис, который импортирует с использованием import * as _ from '../../validate';, а ваш тестовый импорт import * as _ from 'validate; \\absolute reference тогда vscode-jest не будет издеваться над вашей зависимостью так, как вы ожидаете.

Если вы запустите yarn test, тогда он будет имитировать зависимость, как вы ожидаете. если вы запустите экземпляр отладчика с использованием расширения vscode-jest, то он будет имитировать зависимость, как и вы ожидаете.

tl; dr; убедитесь, что вы используете один и тот же явный импорт для службы и тестовых файлов.

...