Moq 4.6.36-alpha
Moq is the most popular and friendly mocking framework for .NET
No packages depend on Moq.
Version 4.5
* Updated to .NET 4.5
* Dropped support for .NET < 4.5 and Silverlight
* Remove ILMerge. Depend on Castle NuGet package instead.
Version 4.3
* Added support for Roslyn
* Automatically add implemented interfaces to mock
Version 4.2
* Improved support for async APIs by making default value a completed task
* Added support for async Returns and Throws
* Improved mock invocation sequence testing
* Improved support for multi-threaded tests
* Added support for named mocks
Version 4.1
* Added covariant IMock<out T> interface to Mock<T>
* Added It.IsNotNull<T>
* Fix: 'NullReferenceException when subscribing to an event'
* Added overloads to Verify to accept Times as a Method Group
* Feature request: It.IsIn(..), It.IsNotIn(...)
* Corrected Verify method behavior for generic methods calls
* Differentiate verification error from mock crash
* Fix: Adding (and removing) handlers for events declared on interfaces works
when CallBase = true.
* Update to latest Castle
* Fix: Mock.Of (Functional Syntax) doesn't work on properties with non-public setters
* Fix: Allow to use CallBase instead of Returns
* Fix: Solved Multi-threading issue - IndexOutOfRangeException
* Capability of mocking delegates (event handlers)
Version 4.0
* Linq to Mocks: Mock.Of<T>(x => x.Id == 23 && x.Title == "Rocks!")
* Fixed issues:
* 87 BadImageFormatException when using a mock with a Visual Studio generated Accessor object
* 166 Unable to use a delegate to mock a function that takes 5 or more parameters.
* 168 Call count failure message never says which is the actual invocation count
* 175 theMock.Object failing on VS2010 Beta 1
* 177 Generic constraint on interface method causes BadImageFormatException when getting Object.
* 183 Display what invocations were recieved when the expected one hasn't been met
* 186 Methods that are not virtual gives non-sense-exception message
* 188 More Callback Overloads
* 199 Simplify SetupAllProperties implementation to simply iterate and call SetupProperty
* 200 Fluent mock does not honor parent mock CallBase setting.
* 202 Mock.Protected().Expect() deprecated with no work-around
* 204 Allow default return values to be specified (per-mock)
* 205 Error calling SetupAllProperties for Mock<IDataErrorInfo>
* 206 Linq-to-Mocks Never Returns on Implicit Boolean Property
* 207 NullReferenceException thrown when using Mocks.CreateQuery with implicit boolean expression
* 208 Can't setup a mock for method that accept lambda expression as argument.
* 211 SetupAllProperties should return the Mock<T> instead of void.
* 223 When a method is defined to make the setup an asserts mock fails
* 226 Can't raise events on mocked Interop interfaces
* 229 CallBase is not working for virtual events
* 238 Moq fails to mock events defined in F#
* 239 Use Func instead of Predicate
* 250 4.0 Beta 2 regression - cannot mock MethodInfo when targetting .NET 4
* 251 When a generic interface also implements a non-generic version, Verify does not work in some cases
* 254 Unable to create mock of EnvDTE.DTE
* 261 Can not use protected setter in public property
* 267 Generic argument as dependency for method Setup overrides all previous method setups for a given method
* 273 Attempting to create a mock thrown a Type Load exception. The message refers to an inaccessible interface.
* 276 .Net 3.5 no more supported
Version 3.0
* Silverlight support! Finally integrated Jason's Silverlight contribution! Issue #73
* Brand-new simplified event raising syntax (#130): mock.Raise(foo => foo.MyEvent += null, new MyArgs(...));
* Support for custom event signatures (not compatible with EventHandler): mock.Raise(foo => foo.MyEvent += null, arg1, arg2, arg3);
* Substantially improved property setter behavior: mock.VerifySet(foo => foo.Value = "foo"); //(also available for SetupSet
* Renamed Expect* with Setup*
* Vastly simplified custom argument matchers: public int IsOdd() < return Match<int>.Create(v => i % 2 == 0); >
* Added support for verifying how many times a member was invoked: mock.Verify(foo => foo.Do(), Times.Never());
* Added simple sample app named StoreSample
* Moved Stub functionality to the core API (SetupProperty and SetupAllProperties)
* Fixed sample ASP.NET MVC app to work with latest version
* Allow custom matchers to be created with a substantially simpler API
* Fixed issue #145 which prevented discrimination of setups by generic method argument types
* Fixed issue #141 which prevented ref arguments matching value types (i.e. a Guid)
* Implemented improvement #131: Add support for It.IsAny and custom argument matchers for SetupSet/VerifySet
* Implemented improvement #124 to render better error messages
* Applied patch from David Kirkland for improvement #125 to improve matching of enumerable parameters
* Implemented improvement #122 to provide custom errors for Verify
* Implemented improvement #121 to provide null as default value for Nullable<T>
* Fixed issue #112 which fixes passing a null argument to a mock constructor
* Implemented improvement #111 to better support params arguments
* Fixed bug #105 about improperly overwriting setups for property getter and setter
* Applied patch from Ihar.Bury for issue #99 related to protected expectations
* Fixed issue #97 on not being able to use SetupSet/VerifySet if property did not have a getter
* Better integration with Pex (http://research.microsoft.com/en-us/projects/Pex/)
* Various other minor fixes (#134, #135, #137, #138, #140, etc.)
Version 2.6
* Implemented Issue #55: We now provide a mock.DefaultValue = [DefaultValue.Empty | DefaultValue.Mock] which will provide the current behavior (default) or mocks for mockeable return types for loose mock invocations without expectations.
* Added support for stubbing properties from moq-contrib: now you can do mock.Stub(m => m.Value) and add stub behavior to the property. mock.StubAll() is also provided. This integrates with the DefaultValue behavior too, so you can stub entire hierarchies :).
* Added support for mocking methods with out and ref parameters (Issue #50)
* Applied patch contributed by slava for Issue #72: add support to limit numbor of calls on mocked method (we now have mock.Expect(...).AtMost(5))
* Implemented Issue #94: Easier setter verification: Now we support ExpectSet(m = m.Value, "foo") and VerifySet(m = m.Value, 5) (Thanks ASP.NET MVC Team!)
* Implemented issue #96: Automatically chain mocks when setting expectations. It's now possible to specify expectations for an entire hierarchy of objects just starting from the root mock. THIS IS REALLY COOL!!!
* Fixed Issue #89: Expects() does not always return last expectation
* Implemented Issue 91: Expect a method/property to never be called (added Never() method to an expectation. Can be used on methods, property getters and setters)
* Fixed Issue 86: IsAny<T> should check if the value is actually of type T
* Fixed Issue 88: Cannot mock protected internal virtual methods using Moq.Protected
* Fixed Issue 90: Removing event handlers from mocked objects
* Updated demo and added one more test for the dynamic addition of interfaces
Version 2.5
* Added support for mocking protected members
* Added new way of extending argument matchers which is now very straightforward
* Added support for mocking events
* Added support for firing events from expectations
* Removed usage of MBROs which caused inconsistencies in mocking features
* Added ExpectGet and ExpectSet to better support properties, and provide better intellisense.
* Added verification with expressions, which better supports Arrange-Act-Assert testing model (can do Verify(m => m.Do(...)))
* Added Throws<TException>
* Added mock.CallBase property to specify whether the virtual members base implementation should be called
* Added support for implementing and setting expectations and verifying additional interfaces in the mock, via the new mock.As<TInterface>() method (thanks Fernando Simonazzi!)
* Improved argument type matching for Is/IsAny (thanks Jeremy.Skinner!)
Version 2.0
* Refactored fluent API on mocks. This may cause some existing tests to fail, but the fix is trivial (just reorder the calls to Callback, Returns and Verifiable)
* Added support for retrieving a Mock<T> from a T instance created by a mock.
* Added support for retrieving the invocation arguments from a Callback or Returns.
* Implemented AtMostOnce() constraint
* Added support for creating MBROs with protected constructors
* Loose mocks now return default empty arrays and IEnumerables instead of nulls
Version 1.5.1
* Refactored MockFactory to make it simpler and more explicit to use with regards to verification. Thanks Garry Shutler for the feedback!
Version 1.5
* Added MockFactory to allow easy construction of multiple mocks with the same behavior and verification
Version 1.4
* Added support for passing constructor arguments for mocked classes.
* Improved code documentation
Version 1.3
* Added support for overriding expectations set previously on a Mock. Now adding a second expectation for the same method/property call will override the existing one. This facilitates setting up default expectations in a fixture setup and overriding when necessary in a specific test.
* Added support for mock verification. Both Verify and VerifyAll are provided for more flexibility (the former only verifies methods marked Verifiable)
Version 1.2
* Added support for MockBehavior mock constructor argument to affect the way the mocks expect or throw on calls.
Version 1.1
* Merged branch for dynamic types. Now Moq is based on Castle DynamicProxy2 to support a wider range of mock targets.
* Added ILMerge so that Castle libraries are merged into Moq assembly (no need for external references and avoid conflicts)
Version 1.0
* Initial release, initial documentation process in place, etc.
.NET Framework 4.5
- Castle.Core (>= 4.0.0-beta001)
.NET Standard 1.3
- System.Threading.Tasks (>= 4.0.11)
- System.Threading (>= 4.0.11)
- System.Text.RegularExpressions (>= 4.1.0)
- System.Runtime.Extensions (>= 4.1.0)
- System.Runtime (>= 4.1.0)
- System.Resources.ResourceManager (>= 4.0.1)
- System.Reflection.TypeExtensions (>= 4.1.0)
- System.Reflection.Primitives (>= 4.0.1)
- System.Reflection.Extensions (>= 4.0.1)
- System.Reflection.Emit (>= 4.0.1)
- System.Reflection.Emit.ILGeneration (>= 4.0.1)
- System.Linq.Queryable (>= 4.0.1)
- System.Linq.Expressions (>= 4.1.0)
- System.Linq (>= 4.1.0)
- System.Globalization (>= 4.0.11)
- System.Diagnostics.Tools (>= 4.0.1)
- System.Diagnostics.Debug (>= 4.0.11)
- System.Collections.Concurrent (>= 4.0.12)
- System.Collections (>= 4.0.11)
- Castle.Core (>= 4.0.0-beta001)
- System.Reflection (>= 4.1.0)
Version | Downloads | Last updated |
---|---|---|
4.20.72 | 12 | 09/07/2024 |
4.20.70 | 15 | 11/30/2023 |
4.20.69 | 17 | 09/08/2023 |
4.18.4 | 40 | 05/11/2023 |
4.18.3 | 37 | 05/21/2023 |
4.18.2 | 1,072 | 08/24/2022 |
4.18.1 | 19 | 06/27/2022 |
4.18.0 | 27 | 08/22/2022 |
4.17.2 | 64 | 09/08/2022 |
4.17.1 | 65 | 09/10/2022 |
4.16.1 | 2,544 | 06/27/2022 |
4.16.0 | 27 | 09/02/2022 |
4.15.2 | 65 | 09/09/2022 |
4.15.1 | 99 | 08/23/2022 |
4.14.7 | 24 | 09/08/2022 |
4.14.6 | 28 | 09/07/2022 |
4.14.5 | 87 | 09/08/2022 |
4.14.4 | 47 | 09/09/2022 |
4.14.3 | 23 | 09/10/2022 |
4.14.2 | 84 | 08/23/2022 |
4.14.1 | 43 | 09/08/2022 |
4.14.0 | 53 | 09/08/2022 |
4.13.1 | 93 | 09/08/2022 |
4.13.0 | 71 | 09/08/2022 |
4.12.0 | 71 | 09/08/2022 |
4.11.0 | 42 | 09/03/2022 |
4.11.0-rc2 | 61 | 09/07/2022 |
4.11.0-rc1 | 15 | 09/04/2022 |
4.10.1 | 67 | 09/08/2022 |
4.10.0 | 83 | 09/09/2022 |
4.9.0 | 39 | 09/08/2022 |
4.8.3 | 83 | 09/04/2022 |
4.8.2 | 30 | 09/09/2022 |
4.8.1 | 55 | 08/25/2022 |
4.8.0 | 27 | 09/09/2022 |
4.8.0-rc1 | 56 | 09/07/2022 |
4.7.145 | 30 | 09/02/2022 |
4.7.142 | 35 | 09/07/2022 |
4.7.137 | 35 | 09/07/2022 |
4.7.127 | 55 | 09/09/2022 |
4.7.99 | 52 | 08/21/2022 |
4.7.63 | 51 | 09/07/2022 |
4.7.58 | 19 | 09/07/2022 |
4.7.49 | 66 | 09/09/2022 |
4.7.46 | 84 | 09/08/2022 |
4.7.25 | 84 | 09/08/2022 |
4.7.12 | 88 | 09/07/2022 |
4.7.11 | 94 | 09/08/2022 |
4.7.10 | 41 | 09/07/2022 |
4.7.9 | 16 | 09/08/2022 |
4.7.8 | 52 | 08/22/2022 |
4.7.7 | 34 | 09/09/2022 |
4.7.1 | 58 | 09/07/2022 |
4.7.0 | 42 | 09/09/2022 |
4.6.62-alpha | 34 | 09/08/2022 |
4.6.39-alpha | 30 | 09/11/2022 |
4.6.38-alpha | 13 | 09/04/2022 |
4.6.36-alpha | 82 | 09/08/2022 |
4.6.25-alpha | 18 | 09/07/2022 |
4.5.30 | 44 | 09/03/2022 |
4.5.29 | 34 | 08/21/2022 |
4.5.28 | 17 | 09/04/2022 |
4.5.23 | 36 | 09/09/2022 |
4.5.22 | 63 | 09/08/2022 |
4.5.21 | 64 | 09/03/2022 |
4.5.20 | 19 | 09/02/2022 |
4.5.19 | 36 | 09/07/2022 |
4.5.18 | 59 | 09/08/2022 |
4.5.16 | 45 | 09/08/2022 |
4.5.13 | 77 | 09/08/2022 |
4.5.10 | 32 | 09/03/2022 |
4.5.9 | 37 | 09/08/2022 |
4.5.9-alpha | 73 | 09/08/2022 |
4.5.8 | 75 | 09/09/2022 |
4.5.7 | 57 | 09/07/2022 |
4.5.7-alpha | 25 | 08/23/2022 |
4.5.6-alpha | 24 | 09/08/2022 |
4.5.3 | 71 | 09/08/2022 |
4.5.0 | 31 | 09/09/2022 |
4.2.1510.2205 | 55 | 09/03/2022 |
4.2.1507.118 | 118 | 09/02/2022 |
4.2.1506.2515 | 37 | 09/08/2022 |
4.2.1506.2016 | 32 | 09/08/2022 |
4.2.1502.911 | 24 | 09/09/2022 |
4.2.1409.1722 | 68 | 09/08/2022 |
4.2.1408.717 | 68 | 08/24/2022 |
4.2.1408.619 | 32 | 09/08/2022 |
4.2.1402.2112 | 20 | 09/03/2022 |
4.2.1312.1622 | 93 | 09/09/2022 |
4.2.1312.1621 | 82 | 09/10/2022 |
4.2.1312.1615 | 40 | 09/07/2022 |
4.2.1312.1416 | 91 | 09/05/2022 |
4.2.1312.1323 | 34 | 08/21/2022 |
4.2.1312.1319 | 68 | 09/03/2022 |
4.1.1311.615 | 66 | 08/25/2022 |
4.1.1309.1617 | 43 | 09/08/2022 |
4.1.1309.919 | 39 | 08/23/2022 |
4.1.1309.801 | 30 | 09/08/2022 |
4.1.1309.800 | 76 | 09/02/2022 |
4.1.1308.2321 | 89 | 09/07/2022 |
4.1.1308.2316 | 53 | 09/08/2022 |
4.1.1308.2120 | 28 | 09/03/2022 |
4.0.10827 | 42 | 09/03/2022 |
3.1.416.3 | 70 | 09/07/2022 |