Upgrade 3 to 4

This is a work in progress. Please send a PR with any amendments.

Also see the 4.0 milestone.

Class constraint added to ShouldNotBeNull

In previous versions it was possible to assert that a non-nullable type ShouldNotBeNull, even though this logically makes no sense. For exmaple, the following would happily compile, but of course could never cause a test failure:

const long value = 1;


The class constraint was added to ShouldNotBeNull in v4, which means the above code will no longer compile. This is a good thing because it allows you to find and fix nonsensical tests in your codebase!

Func<string> customMessage removed

All overloads that accepted a Func<string> customMessage have been changed to string customMessage.

Diff tool functionality moved to DiffEngine

Diff tool functionality is now provided by DiffEngine.

As such, the following APIs have been removed:

  • Shouldly.Configuration.DiffTool

  • ShouldlyConfiguration.DiffTools

  • Shouldly.Configuration.IShouldNotLaunchDiffTool

  • Shouldly.Configuration.DiffToolConfiguration

  • Shouldly.Configuration.KnownDiffTools

  • Shouldly.Configuration.KnownDoNotLaunchStrategies

Last updated