Сбросить контекст выполнения метода из Жасмин - PullRequest
0 голосов
/ 17 января 2019

У меня есть существующий сервис, и мне нужно покрыть его юнит-тестами.Не могу справиться со следующим случаем:

const exampleVariable = 'test';

export class Class {
  testMethod() {
    if (!exampleVariable ) {
      throw Error('There is no exampleVariable!');
    }
  }
}

Как я могу изменить значение «exampleVariable», чтобы достичь случая, когда у нас есть ошибка?

1 Ответ

0 голосов
/ 17 января 2019

Я не думаю, что это возможно для модульного тестирования.В этой реализации метод класса полагается на внешнее состояние (значение exampleVariable) для выполнения своей работы.Вместо этого лучше передать эти данные в качестве аргумента метода:

export class Class {

  testMethod(exampleVariable) {

    if (!exampleVariable) {
      throw new Error('There is no exampleVariable!');
    }

  }

}

Тест будет выглядеть примерно так:

let myClass = new Class();

expect(myClass.testMethod(false)).toThrow(new Error('There is no exampleVariable!'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...