should fluentassertions c# comparison fluent-assertions

c# - fluentassertions - fluent assertions should throw



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

¿Alguien puede resumir las diferencias y el alcance de uso entre ellos?

Leí SO artículos,

  • ShouldBeEquivalientTo() : ShouldBeEquivalentTo () se usa para comparar gráficos de objetos complejos en lugar de los tipos primitivos que forman parte del marco .NET.
  • Should().BeEquivalentTo() : elementos individuales Equals () implementa para verificar la equivalencia y ha existido desde la versión 1. El nuevo ShouldBeEquivalenTo () introducido en FA 2.0 está haciendo una comparación estructural en profundidad y también informa sobre cualquier diferencia.
  • Debería (). Ser (): no se puede encontrar.

En mi humilde comprensión, ShouldBeEquivalientTo() y Should().BeEquivalentTo() funcionan de manera similar si Should().BeEquivalentTo() hace una comparación en profundidad.


Estoy de acuerdo, esto es confuso. Should().BeEquivalentTo() realidad debería llamarse Should().EqualInAnyOrder() o algo por el estilo. Como ha dicho, utiliza la implementación de los objetos involucrados en Equals para ver si todos los de la colección expected aparecen en la colección actual , independientemente del orden. Tendré que arreglar eso para la próxima versión importante.