Тестирование Angular JS: как проверить работоспособность в сервисе, которая не возвращается - PullRequest
0 голосов
/ 19 октября 2018

Извините за возможный дубликат, я не нашел решения для моей проблемы.

Мне нужно написать тесты для сервиса в приложении Angular JS.

ИтакУ меня есть одна основная функция, которая возвращает и использует в качестве внешнего метода.И пара справочных функций для внешних.Итак, как я могу вызывать и проверять вещи внутри справочных функций (subFunc)?

service.js

function TestService() {
  return {
    mainFunc: mainFunc
  };

  funcion mainFunc() {
    //do some and call subFunc()
    subFunc(a)
  }

  function subFunc(a) {
    if (a === 1) {
      // ... magic 1
      return true;
    } else {
      // ... magic 2
      return false;
    }
  }
}
})()

service.spec.js

describe('Test Service', function() {
  beforeEach(module('TestService'));
  var TestService;

  beforeEach(inject(function($injector) {
      TestService = $injector.get('TestService');
  }));

  it('should return true if subFunc called with 1', function () {
    // ....
  });
})

1 Ответ

0 голосов
/ 19 октября 2018

Перепишите TestService, чтобы выставить subFunc, чтобы вы могли заглушить его шпионом и отслеживать, был ли он вызван.

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

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