Skip to content

Extension for Ninject aiding testability in Moq, NSubstitute, RhinoMocks and FakeItEasy

License

Notifications You must be signed in to change notification settings

bnordli/Ninject.MockingKernel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ninject.MockingKernel NuGet Version NuGet Downloads

This extension provides integration between Ninject and Moq/NSubstitute/RhinoMocks/FakeItEasy, creating a "lightweight" auto-mocking container.

Getting started

In your tests, you should use the MockingKernel instead of the StandardKernel. It adds the following features to Ninject:

  1. The following syntax will bind a service to the mocked object of a Mock<T>.
Bind<IService>().ToMock();

You can add additional interfaces to the mock:

Bind<IService>().ToMock(typeof(IInterface1), typeof(IInterface2));
  1. If you request a service that has no binding, instead of creating an implicit self-binding, the MockingKernel will create an instance of Mock<T> and return the mocked object associated with it.

  2. A Reset() method is available, which clears the Ninject cache of any activated instances, regardless of whether they remain in scope. You can call this method after each test to ensure that instances are reactivated, without having to dispose and re-initialize the kernel each time.

Hat tip to Scott Reynolds for the idea, and to Sean Chambers for dogfooding.

Documentation

https://github.com/ninject/Ninject.MockingKernel/wiki

CI build status

Build Status

About

Extension for Ninject aiding testability in Moq, NSubstitute, RhinoMocks and FakeItEasy

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 95.9%
  • Shell 4.1%