Модульное тестовое обещание $ q call - PullRequest
0 голосов
/ 30 января 2020
$scope.load = function() {
    deferred = $q.defer();
    myService.send('SomeRequestMessage');

    deferred.promise.then(function(data) {
        var modalPopup = loadModal.open('TITLE', data);

        modalPoupup.result.then(function(action) {
            if(angular.isDefined(action.dirName)) {
               myService.sendReq(action.dirName);
            }
        });
    });
};

У меня есть модульный тест для вышеуказанной функции следующим образом:

describe('my tests, ', function () {
    var deferred;
    var lRootScope;
    var lmodalInstance;

    beforeEach(inject(function($q, $rootScope) {
        deferred = $q.defer();
        lRootScope = $rootScope;
        lmodalInstance = sinon.stub( { open: function() {}, close: function() {} } );
        lmodalInstance.open.returns({ result: deferred.promise});
    }));

    xit('should call the popup open method once when the open button is pressed.', function () {

        var callBack =sinon.stub();           
        scope.load();           
        expect(lModalInstance.open.calledOnce).toBe(true);
    });

Этот тест не пройден и выдает "Expected false to be true."

Может быть ниже строки кода, выполняемой и сразу же блок Метод ожидаемого теста проверяется без подтверждения обещания (не уверен).

myService.send('SomeRequestMessage');

Пожалуйста, помогите исправить этот тест.

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