jasmine ex 5: spies

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">

JavaScript

//--------------BL------------
var LastNameService = function() {
    this.getLastName = function(firstName) {
        switch (firstName) {
            case "Bob":
                return "Marley";
            case "Phill":
                return "Collins";
        }
    }
};

var Greeter = function(dataService) {
    this.greet = function greet(name) {
        return "Hello " + name + " " + dataService.getLastName(name);
    };
};

//--------------specs------------
describe('greet test suite', function() {
    var myGreeter;

    beforeEach(function() {
        var dataService = new LastNameService();
        spyOn(dataService, 'getLastName').and.returnValue('Dylen');
			  myGreeter = new Greeter(dataService);
    });

    it('should greet corretly', function() {
        expect(myGreeter.greet('Bob')).toBe('Hello Bob Dylen');
    });

});