Est-il un jasmin comparateur pour comparer des objets sur des sous-ensembles de leurs propriétés
J'ai un objet qui peut être étendue le long de mon comportement en cours de test, mais je veux faire en sorte que les propriétés d'origine sont toujours là.
var example = {'foo':'bar', 'bar':'baz'}
var result = extendingPipeline(example)
//{'foo':'bar', 'bar':'baz', 'extension': Function}
expect(result).toEqual(example) //fails miserably
J'aimerais avoir un matcher qui passerait dans ce cas, le long des lignes de:
expect(result).toInclude(example)
Je sais que je peux écrire une correspondance personnalisée, mais il me semble que c'est un problème commun qu'une solution devrait être déjà là. Où dois-je chercher?
- J'ai eu un problème similaire en essayant de comparer les tableaux donc je ne pouvais pas utiliser directement le jasmin.objectContaining qui ne gère pas de tableau tel que décrit dans une autre réponse, à la fin, j'ai juste utilisé un tableau.la carte sur le résultat attendu pour obtenir un objet correspondant à l'exemple, en laissant ici pour examen comme une alternative.
Vous devez vous connecter pour publier un commentaire.
Jasmin 2.0
Depuis ce correctif: https://github.com/pivotal/jasmine/commit/47884032ad255e8e15144dcd3545c3267795dee0
il fonctionne même sur les objets imbriqués, vous avez juste besoin d'envelopper chaque objet que vous souhaitez faire correspondre partiellement dans
jasmine.objectContaining()
Exemple Simple:
Object.keys(obj)
au lieu de vos objets directement?J'ai eu le même problème. J'ai juste essayé ce code, ça fonctionne pour moi :
Je ne pense pas que c'est commun et je ne pense pas que vous pouvez en trouver un. Il suffit d'écrire un:
Je pensais que je voudrais offrir une alternative moderne à l'aide de javascript carte et le reste de l'opérateur. Nous sommes en mesure d'omettre propriétés à l'aide de déstructuration avec le reste de l'opérateur. Voir la description dans cet article.