SO question
Jasmine + Angular
by eitanp461
HTML
<script src="http://jasmine.github.io/2.0/lib/jasmine.js"></script>
<script src="http://jasmine.github.io/2.0/lib/jasmine-html.js"></script>
<script src="http://jasmine.github.io/2.0/lib/boot.js"></script>
<link rel="stylesheet" href="http://jasmine.github.io/2.0/lib/jasmine.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular-mocks.js"></script>
JavaScript
// Test
describe('Custom matcher', function () {
var customMatchers = {
toBeThisOrThat: function (util, customEqualityTesters) {
return {
compare: function (actual) {
var result = {};
result.pass = util.equals(actual, "This", customEqualityTesters) || util.equals(actual, "That", customEqualityTesters);
if (result.pass) {
result.message = "Expected " + actual + " not to be this or that";
} else {
result.message = "Expected " + actual + " to be this or that";
}
return result;
}
};
}
};
beforeEach(function () {
jasmine.addMatchers(customMatchers);
});
it("should equal this or that", function () {
expect('This').toBeThisOrThat();
expect('That').toBeThisOrThat();
expect('foo').not.toBeThisOrThat();
});
})