Disons que j'ai une classe comme celle-ci:
class SomeClass {
constructor(a, b) {
this.a = a;
this.b = b;
}
}
Comment puis-je tester via Jest que le constructeur a été initialisé correctement? Dire... this.a = a
et this.b = b
et non l'inverse?
Je sais que je peux exécuter toBeCalledWith
mais cela ne me permettra pas de vérifier la logique du constructeur. Je pensais aussi à faire mockImplementation
mais dans ce cas cela semble inutile car je vais réécrire la logique, ou je ne connais peut-être pas toutes les nuances de la création de maquettes
Créez simplement une instance de l'objet et vérifiez-la directement. Comme il les définit sur this
, ce sont essentiellement des valeurs publiques:
it('works', () => {
const obj = new SomeClass(1, 2);
expect(obj.a).toBe(1);
expect(obj.b).toBe(2);
});
Vous pouvez simplement vérifier les propriétés de l'instance après avoir initialisé la classe. Fondamentalement, c'est la même chose que vous pouvez tester les effets secondaires de n'importe quelle fonction.
const a = Symbol();
const b = Symbol();
const classInstance = new SomeClass(a, b);
expect(classInstance.a).toBe(a);
expect(classInstance.b).toBe(b);