Jasmine example

test with callbacks

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------------
var Other = {
    invokeCB: function(cb) {
        cb('Bob');
    }
};


function MyFunc() {
    var self = this;

    Other.invokeCB(function(data) {
        self.data = data;
    });
}

//--------------specs------------
describe("MyFunc Spec", function() {
    var testFunc;

    beforeEach(function() {
        testFunc = new MyFunc();
    });

    it("self.data should init after callback", function() {
        var mockData = jasmine.any(Object);

        spyOn(Other, 'invokeCB').and.callFake(function(cb) {
            cb(mockData);
        });

        //var testFunc = new MyFunc();
        expect(testFunc.data).toBe(mockData);
    });

});