All Versions
43
Latest Version
Avg Release Cycle
135 days
Latest Release
662 days ago

Changelog History
Page 4

  • v1.4.1 Changes

    June 01, 2012
    • [FIX] Fix matching Nullable arguments when arg value is null. Thanks to Magnus Olstad Hansen (@maggedotno) for this contribution. (#78)
    • ⚡️ [UPDATE] Updated to Castle.Core 3.0.0.
  • v1.4.0 Changes

    May 01, 2012
    • [NEW] [BREAKING] Auto-substitute for types returned from substitutes of delegates/Funcs (follows same auto-substitute rules as for methods and properties). Thanks to Sauli Tähkäpää for implementing this feature. (#52)
    • [NEW] Show details of params arguments when displaying received calls. Thanks to Sauli Tähkäpää for implementing this feature. (#65)
    • 🏗 [FIX] Race condition between checking received calls and building the exception could cause nonsensical exception messages like "Expected 5, actually received 5" when called concurrently. (#64)
  • v1.3.0 Changes

    November 01, 2011
    • 👍 [NEW] Support for Received(times) to assert a call was received a certain number of times. Thanks to Abi Bellamkonda for this contribution. (#63)
    • 👍 [FIX] Improved support for calling substitutes from multiple threads. (#62)
  • v1.2.1 Changes

    October 01, 2011
    • [FIX] Some combinations of Arg.Do and Returns() caused incorrect values to be returned. (#59)
    • ⚡️ [UPDATE] WCF ServiceContractAttribute no longer applied to proxies. (#60)
    • [FIX] Passing null could cause argument actions to fail. (#61)
    • [FIX] Calls to virtual methods from constructors of classes being substituted for are no longer recorded, to prevent non-obvious behaviour when calling Returns() on an auto-substituted value. (#57)
  • v1.2.0 Changes

    September 01, 2011
    • [NEW] Arg.Do() syntax for capturing arguments passed to a method and performing some action with them whenever the method is called.
    • [NEW] Arg.Invoke() syntax for invoking callbacks passed as arguments to a method whenever the method is called.
    • 👍 [NEW] Basic support for setting out/ref parameters.
    • [FIX] Property behaviour for indexed properties (Issue #53)
    • ⚡️ [UPDATE] [BREAKING] Auto-substitute for pure virtual classes, including common ASP.NET web abstractions. Use .Returns(x=>null) to explicitly return null from these members if required. Thanks to Tatham Oddie for original idea and patch, and Krzysztof Kozmic for suggesting and defining which classes would be safe to automatically proxy.
    • ⚡️ [UPDATE] Changed layout of package for eventual support for multiple framework targets.
    • [FIX] Failure to match calls with ref arguments using ReceivedWithAnyArgs().
    • 👻 [FIX] Incorrect ambiguous args exception when supplying value type arg specs for object arguments.
  • v1.1.0 Changes

    May 01, 2011
    • ⚡️ [UPDATE] Updated to Castle.Core 2.5.3.
    • 🛠 [FIX] Fixed bug when raising a delegate event with a null argument.
    • [FIX] CallInfo.Arg() now works more reliably, including for null arguments.
    • 👻 [FIX] Better exception when accidentally calling substitute extension method with a null reference (e.g. foo.Received().Call() when foo is null)
    • ⚡️ [UPDATE] Exceptions thrown in custom argument matchers (Arg.Is(x => ...)) will now silently fail to match the argument, rather than allowing exceptions to bubble up.
    • ✅ [NEW] Support for test fixtures run in parallel.
  • v1.0.0 Changes

    December 01, 2010
    • 0️⃣ [FIX] Using Returns(null) for value types throws, rather than returning default(T).
  • v0.9.5 Changes

    • 🛠 [FIX] Fixed bug when trying to return null from a call to a substitute.
    • 🛠 [FIX] Equals() for class substitutes fixed by not intercepting Object methods Equals(), ToString() and GetHashCode().
    • [NEW] Raise.Event() methods to raise any type of event, including delegates.
    • 🚚 [BREAKING] Raise.Action() methods removed. Use Raise.Event() (e.g. Raise.Event>()).
    • [BREAKING] Renamed Raise.Event() methods to Raise.EventWith().
    • ⚡️ [UPDATE] Arg matchers can be specified using more specific, compatible type (Arg.Is(..) for arg of type object).
    • 📚 [NEW] NSubstitute website and documentation https://nsubstitute.github.io
    • [FIX] Formating for argument matchers that take predicate functions.
    • [FIX] Match single argument matcher passed to params arg (#34)
    • [FIX] Detect ambiguous arg matchers in additional case (#31)
    • [FIX] Can modify event handler subscriptions from within event callback
    • ⚡️ [UPDATE] Update to Castle.Core 2.5.2
    • 🔀 [FIX] Can substitute for SynchronizationContext in .NET4 (fixed in Castle.Core)
    • 📦 [NEW] NSubstitute available as NuPack package
  • v0.9.0 Changes

    • [FIX] Now handles argument specifiers used for params arguments correctly
    • ⚡️ [UPDATE] Updated to Castle.Core 2.5 final.
  • v0.1.3 Changes

    • 👍 [NEW] Support auto/recursive substituting for members that return interfaces or delegates.
    • 👍 [NEW] Support auto substituting for members that return arrays and strings (return empty values rather than null).
    • 0️⃣ [NEW] Raise.Event() will now attempt to construct arguments with default ctors, so in most cases they will not need to be explictly provided.
    • ⚡️ [UPDATE] Added support for raising events with custom delegate types.
    • ⚡️ [UPDATE] Formatting for event subscription and unsubscription calls in call received/not received exceptions.
    • 🚀 [UPDATE] Updated to pre-release build of Castle.Core 2.5 to get dynamic proxy to support modopts.
    • 👻 [FIX] Throw correct exception when raising an event and event handler throws. (Fix by Rodrigo Perera)
    • 👻 [FIX] Record call as received when it throws an exception from the When..Do callback.