Ich verwende den Controller als Syntax aus eckigen und ich möchte meinen Code mit Jasmin und Sinon testen.Testen von JavaScript-Funktionen - die für den Controller nicht sichtbar sind (eckig)
Lassen Sie uns sagen, dass ich die folgenden Controller-Code wollen:
angular
.module('Test')
.controller('TestController', TestController);
TestController.$inject = [];
function TestController() {
var viewModel = this;
viewModel.myFunction = myFunction;
function myFunction(){
//do something
//now call a helper function
helperFunction()
}
function helperFunction(){
// ....
}
}
Meine Frage ist, wie ich die helperFunction testen können() oder sogar einen Spion auf sie setzen? Mein Helfer ist in meinem Test nicht sichtbar.
Hier ist mein Test:
(function() {
'use strict';
var myController;
describe('Test', function() {
beforeEach(module('Test'));
beforeEach(inject(function ($controller, $injector) {
myController = $controller('TestController');
}));
it('Tests helperFunction', function(){
var sinonSpy = sinon.spy(myController, 'helperFunction');
//perform the action
myController.myFunction();
//expect the function was called - once
expect(sinonSpy .callCount).toEqual(1);
}
})
})