Jasmine - Différence entre toBe et toEqual

Par Sagiliste, il y a 8 ans


Bonjour,

Quelle est la différence entre toBe et toEqual ?

Merci,

2 réponses

Maenhyr, il y a 8 ans

toBe : https://github.com/jasmine/jasmine/blob/master/src/core/matchers/toBe.js
toEqual: https://github.com/jasmine/jasmine/blob/master/src/core/matchers/toEqual.js

toBe est un simple test d'egalité de référence (===). Les primitifs (string, number, ...) seront considérés comme comme égaux. Seulement deux objets ayant les mêmes propriétés auront deux références différentes en mémoire et seront donc considérés comme différents.

toEqual va plus loin. Il va analyser chaque propriété d'un objet et va comparer leurs valeurs.

describe('Hello world', function() { it('should be', function() { expect(1).toBe(1); // success expect({foo: 'bar'}).toBe({foo: 'bar'}); // failure }); it('should equal', function() { expect(1).toEqual(1); // success expect({foo: 'bar'}).toEqual({foo: 'bar'}); // success }); });
Sagiliste, il y a 8 ans

Merci @prbaron