jasmine + angular ex 7
by ronapelbaum
HTML
<script src="https://jasmine.github.io/2.4/lib/jasmine.js"></script>
<script src="https://jasmine.github.io/2.4/lib/jasmine-html.js"></script>
<script src="https://jasmine.github.io/2.4/lib/boot.js"></script>
<link rel="stylesheet" href="https://jasmine.github.io/2.4/lib/jasmine.css">
<script src="https://code.angularjs.org/1.4.9/angular.js"></script>
<script src="https://code.angularjs.org/1.4.9/angular-mocks.js"></script>
JavaScript
//--------------BL------------
(function() {
var LastNameService = function() {
var start = Date.now();
for (var i = 0; i < 100000000; i++);
console.log("LastNameService creation: ", (Date.now() - start), "ms");
this.getLastName = function(firstName) {
switch (firstName) {
case "Bob":
return "Marley";
case "Phill":
return "Collins";
}
}
};
var Greeter = function(dataService) {
function greet(name) {
return "Hello " + name + " " + dataService.getLastName(name);
}
this.greet = greet;
};
//OtherModule
angular.module('OtherModule', [])
.service('LastNameService', LastNameService);
//MyModule
angular.module('MyModule', ['OtherModule'])
.service('GreeterService', ['LastNameService', Greeter]);
})();
//--------------specs------------
describe("MyController test suite", function() {
var GreeterService;
beforeEach(module('MyModule'));
beforeEach(inject(function(_GreeterService_) {
GreeterService = _GreeterService_;
}));
it("should greet corretly", inject(function(LastNameService) {
//NOTE - we are inside a local 'inject'
spyOn(LastNameService, 'getLastName').and.returnValue('Dylen')
expect(GreeterService.greet('Bob')).toBe('Hello Bob Dylen');
}));
});