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 aparams T[]
which should resolve some overload-resolution issues. (#110) - Ensured consistent behavior of
ShouldBeEquivalentTo
on (publicly) member-less objects - Fixed
DateTime
toDateTimeOffset
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
andShouldAllBeEquivalentTo
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 theIncludingAllRuntimeProperties
option.