Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Fluent Assertions 1.7.0 has been released

DZone's Guide to

Fluent Assertions 1.7.0 has been released

·
Free Resource

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 notes.

What's New

  • Added methods for asserting that a collection of types matching a predicate have specific methods that are virtual or marked with a specific attribute.
typeof(MyController).Methods()
.ThatReturn<ActionResult>()
.ThatAreDecoratedWith<HttpPostAttribute>()
.Should()
.BeDecoratedWith<ValidateAntiForgeryTokenAttribute>(
"because all Actions with HttpPost require ValidateAntiForgeryToken");
  • Added methods for asserting XElements and Xattributes
xDocument.Should().HaveRoot("configuration");
xDocument.Should().HaveElement("settings");

xElement.Should().HaveAttribute("age", "36");
xElement.Should().HaveElement("address");

xAttribute.Should().HaveValue("Amsterdam");
  • 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 graph.
  • 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.

Topics:

Published at DZone with permission of Dennis Doomen, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}