jasmine-angular: $inject other service
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() {
function MyDataService() {
this.getName = function() {
return 'bob';
}
}
function MyUpperCaseService(MyDataService) {
this.getUppercaseName = function() {
return MyDataService.getName().toUpperCase();
}
}
angular.module('MyModule', [])
.service('MyDataService', MyDataService)
.service('MyUpperCaseService', ['MyDataService', MyUpperCaseService]);
})();
//--------------specs------------
describe("MyUpperCaseService test suite", function() {
var MyDataService, MyUpperCaseService;
beforeEach(module('MyModule'));
beforeEach(inject(function(_MyDataService_, _MyUpperCaseService_) {
MyDataService = _MyDataService_;
MyUpperCaseService = _MyUpperCaseService_;
}));
it("spyOn() and return 'alice", function() {
spyOn(MyDataService, 'getName').and.returnValue('alice');
expect(MyUpperCaseService.getUppercaseName()).toBe('ALICE');
});
});