| custom_equality.js | |
|---|---|
| Custom Equality Testers | describe("custom equality", function() { | 
| You can customize how jasmine determines if two objects are equal by defining your own custom equality testers. A custom equality tester is a function that takes two arguments. |   var myCustomEquality = function(first, second) { | 
| If the custom equality tester knows how to compare the two items, it should return either true or false |     if (typeof first == "string" && typeof second == "string") {
      return first[0] == second[1];
    } | 
| Otherwise, it should return undefined, to tell jasmine’s equality tester that it can’t compare the items |   }; | 
| Then you register your tester in a  |   beforeEach(function() {
    jasmine.addCustomEqualityTester(myCustomEquality);
  }); | 
| Then when you do comparisons in a spec, custom equality testers will be checked first before the default equality logic. |   it("should be custom equal", function() {
    expect("abc").toEqual("aaa");
  }); | 
| If your custom tester returns false, no other equality checking will be done. |   it("should be custom not equal", function() {
    expect("abc").not.toEqual("abc");
  });
}); |