2017-03-22 1 views
1

Jest dispose d'une fonctionnalité snapshot, et son exemple docs montre comment l'utiliser avec les composants React. (renderer.create(...).toJSON()).expect (x) .toMatchSnapshot() -> Utiliser le sérialiseur par défaut ou JSON.stringify()?

Lorsque vous utilisez cette fonction pour tester un objet régulier Javascript, il y a deux façons possibles que j'ai pensé y parvenir:

  • expect(x).toMatchSnapshot()
    • celui-ci utilise la valeur par défaut sérialiseur
  • expect(JSON.stringify(x, undefined, 2)).toMatchSnapshot()
    • utilise ce JSON.stringify comme sérialiseur

Bien sûr, le contenu du fichier .snap enregistré est différent dans chaque cas; mais sinon, ils s'exécuteraient de la même manière.

Quelle serait la meilleure pratique dans ce scénario?

Y a-t-il encore une autre façon recommandée?

Répondre

1

Il n'y a pas de meilleure pratique. Faites ce qui vous convient le mieux dans votre cas. Si vous trouvez vos instantanés ayant des informations plus précieuses avec JSON.stringify allez-y.

Pour les valeurs complexes (comme les composants ou Vue des objets de bibliothèque) vous pouvez écrire votre propre sérialiseur: http://facebook.github.io/jest/docs/configuration.html#snapshotserializers-array-string

+1

Merci pour le lien. J'essaie ma main à un serialiser personnalisé mort simple: https://github.com/bguiz/jest-object ... voyons comment cela fonctionne – bguiz