It has barely been more than two months ago, but the number of downloads
through CodePlex and Nuget combined has exceeded 2000. Me and co-author Martin Opdam thought that to be a nice
reason for releasing a new version of Fluent Assertions. This isn't a big
release, but since we are following semantic
versioning and we added new functionality as well as some bug fixes, an
increment in the minor number is in order. Since we prefer NuGet ourselves, get
the latest version through its NuGet landing page. If
you prefer the old-fashioned way, get it through CodePlex. Here are the release
- Added methods for asserting that a collection of types matching a predicate have specific methods that are virtual or marked with a specific attribute.
"because all Actions with HttpPost require ValidateAntiForgeryToken");
- Added methods for asserting XElements and Xattributes
- Added support for recursively comparing the properties of nested (collection
of objects ). By default it will compare all properties of the expected object
graph, unless SharedProperties is used.
- Added a fallback mechanism so that if FA cannot find any of the supported
frameworks, it will fall back to using a custom AssertFailedException exception
class rather than crashing.
- Added support for ComparisonMode.StartWith and ComparisonMode.StartWithEquivalent when asserting the message of an exception.
Bug Fixes & Improvements
- For assertions that verify against a Type, the failure message will use the
AssemblyQualifiedName rather than just the name of the type.
- Fixed a bug so that collection.Should().OnlyContain(lamba) now throws if the
collection is empty. See this
discussion for more details.
- Minor fix that ignores trailing blank characters when looking for the
'because' text in the reason of an assertion.
- Added better and deeper detection of cyclic references when recursively
comparing properties or generating a string representation of a complex object
- For long strings, the error message for string.Should().StartWith() places the actual and expected strings on seperate lines. This makes it easier to find the differences.
By the way, we’ve also spent some time updating the documentation.