web-dev-qa-db-fra.com

FluentAssertions: ShouldBeEquivalentTo vs Should (). Be () vs Should (). BeEquivalentTo ()?

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

J'ai lu SO articles,

  • ShouldBeEquivalientTo () : ShouldBeEquivalentTo () est destiné à être utilisé pour comparer des graphiques d'objets complexes plutôt que la partie des types primitifs du framework .NET.
  • Should (). BeEquivalentTo () : éléments individuels Implémentation Equals () pour vérifier l'équivalence et existe depuis la version 1. Le plus récent ShouldBeEquivalenTo () introduit dans FA 2.0 effectue une comparaison structurelle approfondie et signaler également toute différence.
  • Doit (). Être (): ne peut pas trouver.

Dans mon humble compréhension, ShouldBeEquivalientTo() et Should().BeEquivalentTo() fonctionnent de manière similaire si Should().BeEquivalentTo() fait une comparaison approfondie.

27
Youngjae

Je suis d'accord que 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 l'implémentation Equals des objets impliqués pour voir si tous ceux de la collection expected apparaissent dans la collection actual, quel que soit l'ordre. Je vais devoir corriger cela pour la prochaine version majeure.

31
Dennis Doomen