Попытка охватить функцию, которая вызывает в ней другую функцию, однако один из параметров вызываемой функции сам по себе является другой функцией. Есть ли способ высмеять и покрыть это?
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? Спасибо!