@blairconrad blairconrad released this Feb 23, 2017 · 628 commits to master since this release

Assets 4

New

  • Support for .NET Standard 1.6, including .NET Core 1.0 (#531)

    Some functionality available in the .NET 4.0 assembly is not available in the .NET Standard assembly.
    In particular, note that:

    • Fakes will not be binary serializable
    • SelfInitializedFakes (e.g. fakeService = A.Fake<ILibraryService>(options => options.Wrapping(realService).RecordedBy(recorder)) are not supported
  • New syntax (Then) to configure successive calls to the same member. (#803):

    A.CallTo(() => foo.Bar()).Returns(0).Twice()
        .Then.Throws<InvalidOperationException>().Once()
        .Then.Returns(1);
  • Automatic cancellation support #904

    Methods that accept a CancellationToken will now automatically throw an OperationCanceledException (or return a canceled task, for async methods) when they receive a canceled token.

  • Add a ThrowsAsync method to return a failed task rather than directly throw an exception (#932)

  • Add CallsToSet to unnatural fakes (Fake<T>) (#838)

  • Using Castle.Core 4.0.0, with .NET Core support (#974)

  • [Analyzer] Add an analyzer that supports VB.NET (#952)

Changed

  • WithAdditionalAttributes Fake configuration option is replaced by WithAttributes (#436):

    var foo = A.Fake<IFoo>(x => x.WithAttributes(() => new FooAttribute()));
  • IAfterCallSpecifiedConfiguration is renamed to IAfterCallConfiguredConfiguration (#910)

  • Default read/write property behavior no longer overrides explicit configuration of getter and setter (#962)

  • Hide object members on several fluent API interfaces (#944)

  • Deprecated RecordedBy method as well as types that support self-initializing Fakes. To be removed in 4.0.0 (#820)

Fixed

  • Faking a type multiple times and applying different attributes to the fakes now correctly generates different fake types. (#436)
  • All non-void members attempt to return a Dummy by default, even after being reconfigured by Invokes or DoesNothing (#830)

Removed from public API

  • IStartConfiguration<T>. It had been always been intended for internal use only. (#864)

With special thanks for contributions to this release from: