FluentAssertions: should Beequivalent to vs Should ().Be () vs Should ().BeEquivalentTo ()?

Quelqu'un peut-il résumer les différences et la portée de l'utilisation entre eux?

j'ai lu TELLEMENT d'articles,

  • ShouldBeEquivalientTo(): ShouldBeEquivalentTo () est destiné à être utilisé pour comparer des graphiques d'objets complexes plutôt que la partie des types primitifs du .net framework.
  • Devrait().BeEquivalentTo (): éléments individuels Equals() de la mise en œuvre pour vérifier l'équivalence et a été autour depuis la version 1. La plus récente ShouldBeEquivalenTo () introduit dans FA 2.0 effectue une comparaison structurelle en profondeur et rend compte également de toute différence.
  • devrait ().Be ():impossible de trouver.

À mon humble compréhension, ShouldBeEquivalientTo() et Should().BeEquivalentTo() travail similaire si Should().BeEquivalentTo() fait une comparaison en profondeur.

16
demandé sur Community 2014-09-19 06:43:39

1 réponses

je suis d'accord c'est déroutant. Should().BeEquivalentTo() devrait en fait être appelé Should().EqualInAnyOrder() ou quelque chose comme ça. Comme vous l'avez dit, il utilise le Equals implémentation des objets impliqués pour voir si tous ceux de expected collection apparaissent dans le actual collecte, indépendamment de l'ordre. Je vais devoir arranger ça pour la prochaine version majeure.

20
répondu Dennis Doomen 2014-09-19 06:51:40