Fluent Assertions 3.1

@dennisdoomen dennisdoomen released this Feb 6, 2016

Improvements and bug-fixes

  • Added support for Windows Phone 8.1, Windows 8.1 and Universal Apps.
  • Added support for XUnit 2. (#136)
  • Introduced a new syntax for ensuring an assembly doesn't reference a particular other reference, e.g. assemblyB.Should().NotReference(assemblyA).
  • Reintroduced support for .NET 4.0 rather than requiring .NET 4.0.3. (#121)
  • Ensured that the Which chaining syntax will throw a clear exception if the object that is chained upon doesn't return a single item. (#99)
  • Added an overload for collection.Should().Equal() that takes a params T[] which should resolve some overload-resolution issues. (#110)
  • Ensured consistent behavior of ShouldBeEquivalentTo on (publicly) member-less objects
  • Fixed DateTime to DateTimeOffset conversions that are close to the edges. (#120)
  • Changed the failure message for ShouldThrow<T> so that it always includes the type of the thrown exception. (#122)
  • Ensured that collection.Should().BeEmpty() does not enumerate the sequence twice. (#124)
  • Excluded indexer properties during a structural equivalency assertion. (#130)
  • Fixed the internal resolution of platform-specific services from the PCL assembly so that custom extensions to FA won't throw null-reference exceptions. (#126, #119)
  • Ensured that exceptions that implement IEnumerable<T> are still formatted as exceptions. ( #122).
  • The time span assertions that asserted the difference between to dates and times didn't properly handle UTC. (#127)

Potentially breaking change

  • Due to a long-standing internal bug, ShouldBeEquivalentTo and ShouldAllBeEquivalentTo were using the run-time type of nested objects rather than the compile-time type. So if you suddenly encounter failing unit tests after upgrading to v3.1 consider adding the IncludingAllRuntimeProperties option.