Changelog
The breaking changes, features, bug fixes and performance improvements of each release, generated from the GitHub releases. Dependency updates and internal changes are left out.
The packages have their own changelogs: Mockolate.Migration.
Breaking changesFeaturesFixesPerformance
upcoming
Version 4 Upcoming
Preparing v4…What's new in v4
2026
Version 3
11 releases · Apr 2026 to Oct 2026
230 commits16 breaking changes17 features37 fixes14 performance improvements
Oct 9 2026
3.6.0Latest
4 commits1 feature
1 change
Features · 1
- Add a
VerifyAsyncoverload with a cancellation token #879
Oct 1 2026
7 commits1 fix
1 change
Fixes · 1
- Prevent concurrent HttpContent matching from corrupting the stream position #875
Sep 16 2026
Sep 7 2026
11 commits1 feature1 fix
Aug 27 2026
14 commits4 fixes
4 changes
Fixes · 4
Jul 29 2026
Jun 21 2026
13 commits2 features1 performance improvement
May 21 2026
9 commits1 fix
1 change
Fixes · 1
- Preserve protected internal accessibility on overridden members #788
May 11 2026
24 commits2 features5 fixes2 performance improvements
9 changes
Features · 2
Fixes · 5
May 2 2026
17 commits4 features3 fixes4 performance improvements
11 changes
Features · 4
Fixes · 3
Apr 30 2026
3.0.013 breaking
97 commits13 breaking changes7 features17 fixes7 performance improvements
44 changes
Breaking changes · 13
- Avoid boxing for parameters #633
- Avoid casting for properties and callbacks #634
- Introduce ITypedParameter and ITypedMethodMatch interfaces to avoid boxing for method parameters #635
- Introduce ITypedIndexerMatch interfaces to avoid boxing for indexer parameters #637
- Remove index handling from IInteraction implementations to simplify interaction classes #641
- Reduce allocations in setup/interaction/verify #642
- Use
Callbacks<T>class #648 - Optimize indexer performance by removing capturing closures #653
- Interfaces for ref-struct compatibility and add support #662
- Update CreateMock overloads to accept typed constructor arguments #668
- Omit constructor parameters overloads for interfaces and types with only parameterless constructors #671
- Add state-passing variant of Invoke method to avoid closures #677
- Enable subclassing by updating MockRegistry constructors and interactions #691
Features · 7
- Add Scenarios #643
- Allow opt-out of interaction recording #649
- Add collection matchers for
ContainsandSequenceEquals#650 - Forward events to base class when not skipped #658
- Add support for required members in generated constructors #681
- Enhance static interface support with additional mock capabilities #698
- Update benchmarks to verify getter and setter calls #702
Fixes · 17
- Missing namespace for Action in source generated code #651
- Keep source generated classes internal #652
- Record interactions even if base class throws #654
- Race-condition in property initialization #660
- Callback invocations for methods with 5+ parameters #663
- Source generation errors #672
- Prefix reserved C# keywords with '@' in generated members #682
- Implement ConsumeAll method to mark all slots as verified in FastMethodBuffer #707
- Remove spurious
"in exception message #711 - Rename verify lambda variable to avoid collision with parameter named i #718
- Preserve ref/out/in modifiers when raising events with by-ref delegates #719
- Skip IMockSetup<T> parent for interfaces with only static abstract events #720
- Preserve init accessor on init-only properties #717
- Rename methodSetup local in setup impl to avoid parameter name collision #722
- Support ref and ref readonly return types #721
- Preserve nullable annotation on generic return type in setup interface #723
- Support generic methods with allows ref struct constraint #724
Performance · 7
- Optimize storage handling in PropertySetups for improved performance #647
- Typed indexer storage with int signature indices #657
- Improve interaction hot-path performance #679
- Speedup source generator #683
- Optimize property getter access handling in FastPropertyBuffer #694
- Improve indexer performance #699
- Update property verification methods to use typed verification #703
2026
Version 2
8 releases · Mar 2026 to Apr 2026
91 commits4 breaking changes21 features15 fixes14 performance improvements
2026
Version 1
16 releases · Jan 2026 to Mar 2026
110 commits2 breaking changes15 features20 fixes