Жасмин тест, чтобы охватить функцию, которая установлена ​​в качестве параметра в другой функции? - PullRequest
0 голосов
/ 12 марта 2020

Попытка охватить функцию, которая вызывает в ней другую функцию, однако один из параметров вызываемой функции сам по себе является другой функцией. Есть ли способ высмеять и покрыть это?

javascript:

$scope.submit = function (result) {
    $scope.page.verify(
        result.key, 
        result.value,
        function(response) {
            if(response.value === 'SUCCESSFUL') {
                console.log('WORKS!');
            } else {
                console.log('FAILED!')
            }   
       }
    );
};

test:

describe("test submit", function() {
    it("success", function() {
         var result, response;
         result = {
            key: 'first',
            value: '1'
         };
         response = 'SUCCESSFUL'
         console.log = jasmine.createSpy("log");
         spyOn($scope.page, 'verify').and.callThrough();
         $scope.submit(result);
         expect(console.log).toHaveBeenCalledWith('WORKS!');
    });

    it("failed", function() {
         var result, response;
         result = {
            key: 'first',
            value: '1'
         };
         response = 'FAILED!'
         console.log = jasmine.createSpy("log");
         spyOn($scope.page, 'verify').and.callThrough();
         $scope.submit(result);
         expect(console.log).toHaveBeenCalledWith('FAILED!');
    });  
});

Кажется, что покрытие охватывает все, кроме параметра «функция (ответ)» в методе. Есть ли способ показать его роль в моем тесте на жасмин? Как бы я шпионил или издевался над параметром функции в $ scope.page.verify? Спасибо!

...