Moq 4.6.38-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.

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