jinhailion 2014-11-16
// A test suite in Jasmine
describe('My Function', function() {
var t;
// Similar to setup
beforeEach(function() {
t = true;
});
afterEach(function() {
t = null;
});
it('should perform action 1', function() {
expect(t).toBeTruthy();
});
it('should perform action 2', function() {
var expectedValue = true;
expect(t).toEqual(expectedValue);
});
});
Useful Jasmine Matcher
toEqual:
takes a second value and does a deep equality check between the two objects. In the case of an object, all the fields have to match. In the case of an array, all the array elements have to match.
toBe:
checks for reference, and expects both items passed to the expect and the matcher to be the exact same object reference.
toBeTruthy
toBeFalsy
toBeDefined
toBeUndefined
toBeNull
toBeNaN
toBeGreaterThan
toBeLessThan
toBeCloseTo
toContain:
Checks if the array passed to the expect contains the element passed to the matcher.
toMatch:
Used for regular expression checks when the first argument to the expect is a string that needs to match a specific regular expression pattern.
toThrow
toHaveBeenCalled
toHaveBeenCalledWith
not:
.not.toEqual
.not.toContain:
spyOn
beforeEach
afterEach
x
jasmine.any
expect(rand()).toEqual(jasmine.any(Number)); expect('Hello World").toEqual(jasmine.any(String));