FakeItEasy v5.0.0 Release Notes

Release Date: 2019-01-07 // over 5 years ago
  • 🆕 New

    • 🔧 Greatly reduced time to create, configure, call, and assert on Fakes (#1466, #1469, #1470, #1489, #1493, #1507)
    • 🔧 Warn at configuration time that delegates can't call a base method (#1492)

    🔄 Changed

    • 👕 No longer passing IFakeObjectCallRule to IInterceptionListener.OnAfterCallIntercepted (#1494, #1521)
    • 🆓 Restrict typeparams in generic Fake creation methods to reference types, and free-form delegates to Delegate types (#1465)
    • 📇 Renamed IRepeatConfiguration type used in fluent API to IBehaviorLifetimeConfiguration (#1294)
    • Can only fake delegates accessible to DynamicProxy (#1508)
    • Fakes, and custom exceptions thrown by the library, are no longer binary serializable (#1500)

    ✂ Removed from the public API

    • ✅ Automatic fake injection into system under test (InitializeFixture) (#992)
    • IInterceptedFakeObjectCall.AsReadOnly (#1505)
    • Raise.With<TEventHandler> (#1152)
      👉 Use Raise.FreeForm.With (or Raise.FreeForm(Of TEventHandler).With for VB) instead.
    • 📦 Analyzer meta-package FakeItEasy.Analyzer (#1509)
      👉 Use FakeItEasy.Analyzer.CSharp or FakeItEasy.Analyzer.VisualBasic instead

    🗄 Deprecated

    • Specifying call count constraints using Repeated (#1295)
      👉 Use one of the following formats instead:

      A.CallTo(() => foo.Bar()).MustHaveHappened();A.CallTo(() => foo.Bar()).MustNotHaveHappened();A.CallTo(() => foo.Bar()).MustHaveHappenedOnceExactly();A.CallTo(() => foo.Bar()).MustHaveHappenedOnceOrMore();A.CallTo(() => foo.Bar()).MustHaveHappenedOnceOrLess();A.CallTo(() => foo.Bar()).MustHaveHappenedTwiceExactly();A.CallTo(() => foo.Bar()).MustHaveHappenedTwiceOrMore();A.CallTo(() => foo.Bar()).MustHaveHappenedTwiceOrLess();A.CallTo(() => foo.Bar()).MustHaveHappened(4, Times.Exactly);A.CallTo(() => foo.Bar()).MustHaveHappened(6, Times.OrMore);A.CallTo(() => foo.Bar()).MustHaveHappened(7, Times.OrLess);A.CallTo(() => foo.Bar()).MustHaveHappenedANumberOfTimesMatching(n => n % 2 == 0);

    ➕ Additional Items

    • ⬇️ Drop GitFlow in favour of GitHub flow (#1487)
    • 🚀 Small improvements to prepare_release command (#1538, #1539, #1540)
    • 📚 Correct documentation on return value when Invokes is used (#1552, #1553)
    • Very explicitly state how to invoke custom calls for methods that take more than 4 arguments (#1496)
    • Document advanced usage methods (#1474)
    • Simplify ServiceLocator (#1478)
    • 🚚 Move most proxy generator tests to specs (#1495)
    • 👍 Characterize/figure out serialization support (#1499)
    • ⬆️ Upgrade Bullseye to 2.3.0-beta.6 (#1464, #1471, #1524, #1528, #1531, #1534)
    • ⬆️ Upgrade Xbehave.Core to 2.4.0 (#1480)
    • ⬆️ Upgrade SimpleExec to 4.2.0 (#1502, #1531)
    • ⬆️ Upgrade Microsoft.NET.Test.Sdk to 15.9.0 (#1482)
    • 👉 Use MinVer to generate version numbers (#1516)
    • 🔨 Refactored build script (#1520, #1523)
    • 🏗 Show messages only (no stack trace) for exceptions during build (#1529)
    • ✂ Remove MonoDevelop section from sln (#1533)
    • ✂ Remove obsolete branches from the repository (#1535)

    🚀 With special thanks for contributions to this release from: