jasmine + angular ex 4

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.getNames = function() {
      return ['Alice', 'Bob'];
    }
  }

  function MyController(MyDataService) {
    this.greetings = [];
    this.init = function() {
      var names = MyDataService.getNames();
      for (var i = 0; i < names.length; i++) {
        var greet = 'Hello ' + names[i];
        this.greetings.push(greet);
      }
    }
  }

  angular.module('MyModule', [])
    .service('MyDataService', MyDataService)
    .controller('MyController', ['MyDataService', MyController]);

})();


//--------------specs------------
describe("MyController test suite", function() {
  var ctrl;
  beforeEach(module('MyModule'));

  it("should have greetings array", function() {
    expect(ctrl.greetings).toBeDefined();
  });

  it("init() should update greetings array", function() {
    ctrl.init();
    expect(ctrl.greetings.length).toBe(2);
  });


});