Fluent Assertions 8.9: mejor soporte, mejores diagnósticos, mayor fluidez en pruebas

Fluent Assertions 8.9 es una versión enfocada que mejora tres aspectos importantes en las pruebas diarias de .NET: soporte para tipos modernos, legibilidad de las aserciones y diagnóstico de fallos. Para los equipos que escriben y mantienen grandes conjuntos de pruebas, estas actualizaciones reducen la fricción en dos áreas que afectan directamente la velocidad de ejecución: la escritura de aserciones y la depuración de fallos.

What changed in 8.9

Broader support for modern .NET types

Fluent Assertions 8.9 adds extensive support for Span<T> y ReadOnlySpan<T>, along with Be(string) para Span<char> y ReadOnlySpan<char>.

This matters because these types show up more often in performance-sensitive and modern .NET code paths. Native support means fewer workarounds, cleaner test code, and less conversion overhead just to keep assertions readable.

More fluent collection assertions

This release adds BeEqualTo y NotBeEqualTo to collection assertions as a more fluent alternative to Equal.

That is a small API change with practical value. Test code reads more consistently, which improves maintainability across larger suites.

Better control over equivalency comparisons

Two new overloads, Excluding<T>() y Excluding(Type), make it easier to exclude all members of a certain type from equivalency comparisons.

This is especially useful when comparing complex object graphs where certain member types are noisy, irrelevant, or environment-specific. The result is less setup and more targeted assertions.

Clearer failure output for collection mismatches

SerEquivalenteA now reports missing or extraneous items for differently sized collections.

That directly improves debugging speed. Instead of only seeing that a comparison failed, developers get clearer information on what is missing and what should not be there.

Diagnostics improvements that save time

The biggest leverage in this release is in failure analysis.

El nuevo WithFullDump option can include the full contents of the subject-under-test in SerEquivalenteA failure messages. Fluent Assertions code is also removed from stack traces when an assertion fails, and reporting is improved when chaining Throw con Which.

These changes reduce noise and increase signal. In practice, that means less time tracing through framework internals and faster identification of the actual issue in the test or subject under test.

Precision improvements for time-based assertions

Fluent Assertions 8.9 also adds HaveMillisecond y NotHaveMillisecond para FechaHora y DateTimeOffset.

For systems where timestamp precision matters, this gives teams a more direct and expressive way to validate time-based behavior.

Fix included in 8.9

This release also fixes a formatting exception that could occur when comparing strings containing braces.

That is a targeted fix, but one that removes an avoidable source of test instability and confusion.

Why this release matters

Fluent Assertions 8.9 is not about headline features. It is about removing friction from the testing workflow.

From broader support for Span<T> to more useful SerEquivalenteA output and cleaner stack traces, the release improves the speed and clarity of everyday test work. That is the kind of update that compounds over time in active .NET codebases.

If your team values readable tests, faster debugging, and smoother assertion workflows, 8.9 is worth a close look.

Read the full release notes

Read the full release notes to see every feature, enhancement, and fix included in Fluent Assertions 8.9. 

Echa un vistazo a la biblioteca de palabras y PDF de Xceed paquete