Как мне проверить это внутреннее это обещание тогда в Жасмин? - PullRequest
0 голосов
/ 06 сентября 2018

Следующее асинхронное обещание живет внутри цели Angular, которую я тестирую. Я не могу увидеть код внутри «then», который вызывается, и это тот код внутри «then», который мне требуется для тестирования.

angular.module('Ls', [
])

function Locale($rootScope, $http) {

  var API = {
    getAvailables: getAvailables

  };
  API.getAvailables().then(function(data) {
        ..........do stuff
     ........it what this code is doing that I want to test!!!

      });

 function getAvailables() {
      return $http.get('/l.json').then(function(response) {
        return response.data;
    });
 }

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Это исправило это для меня $ HttpBackend.flush () https://docs.angularjs.org/api/ng/service/$http#writing-unit-tests-that-use-http

0 голосов
/ 06 сентября 2018

Вы можете либо заглушки getAvailables всегда разрешать, либо вы можете извлечь обратный вызов в отдельную функцию и проверить это.

Вариант А

sinon.stub(API, 'getAvailables').resolves(data);

Вариант B

API.getAvailables().then(handleResponse);

^ Тест handleResponse Функция

...