C# Ninject:使用NSubstitute自动模拟?

C# Ninject:使用NSubstitute自动模拟?,c#,mocking,ninject,nsubstitute,automocking,C#,Mocking,Ninject,Nsubstitute,Automocking,有人能帮忙吗,我在使用Ninject和NSubstitute之间提供的自动模拟时遇到了问题,实际上这个包是一个名为Ninject.MockingKernel.NSubstitute的Ninject包,它应该允许我使用Ninject创建模拟并返回已注入模拟的实例 似乎有一些Moq和Rhinomock的例子,但我没有看到任何NSubstitute的例子 到目前为止,我得到的是 this.kernel = new NSubstituteMockingKernel(); var summarySer

有人能帮忙吗,我在使用Ninject和NSubstitute之间提供的自动模拟时遇到了问题,实际上这个包是一个名为
Ninject.MockingKernel.NSubstitute
的Ninject包,它应该允许我使用Ninject创建模拟并返回已注入模拟的实例

似乎有一些Moq和Rhinomock的例子,但我没有看到任何NSubstitute的例子

到目前为止,我得到的是

this.kernel = new NSubstituteMockingKernel();  
var summaryService = this.kernel.GetMock<IMyService>(); // GetMock not available
this.kernel=new NSubstituteMockingKernel();
var summaryService=this.kernel.GetMock();//GetMock不可用

有人在使用它吗?

以下是一些改编自:

[TestFixture]
公开课考试
{
/// 
///mock是单态的。
/// 
[测试]
公共空间模拟单体()
{
使用(var kernel=new NSubstituteMockingKernel())
{
var firstReference=kernel.Get();
var secondReference=kernel.Get();
firstReference.Should().BeSameAs(secondReference);
}
}
/// 
///真实对象是为自动绑定类型创建的。
/// 
[测试]
public void real objects为AutoBindableTypes()创建
{
使用(var kernel=new NSubstituteMockingKernel())
{
var instance=kernel.Get();
instance.Should().NotBeNull();
}
}
/// 
///Reals对象是单例的。
/// 
[测试]
public void RealObjectsResinglets()
{
使用(var kernel=new NSubstituteMockingKernel())
{
var instance1=kernel.Get();
var instance2=kernel.Get();
instance1.Should().BeSameAs(instance2);
}
}
/// 
///注入的依赖项实际上是模拟。
/// 
[测试]
公共作废已注入的附件移除()
{
使用(var kernel=new NSubstituteMockingKernel())
{
var instance=kernel.Get();
DummyService.Do();
instance.DummyService.Received().Do();
}
}
公共接口IDummyService
{
无效Do();
}
公共类DummyClass
{
公共DummyClass(IDummyService dummyService)
{
this.DummyService=DummyService;
}
公共IDummyService DummyService{get;set;}
}
}
[TestFixture]
public class Tests
{
    /// <summary>
    /// Mocks are singletons.
    /// </summary>
    [Test]
    public void MocksAreSingletons()
    {
        using (var kernel = new NSubstituteMockingKernel())
        {
            var firstReference = kernel.Get<IDummyService>();
            var secondReference = kernel.Get<IDummyService>();

            firstReference.Should().BeSameAs(secondReference);
        }
    }

    /// <summary>
    /// Real objects are created for auto bindable types.
    /// </summary>
    [Test]
    public void RealObjectsAreCreatedForAutoBindableTypes()
    {
        using (var kernel = new NSubstituteMockingKernel())
        {
            var instance = kernel.Get<DummyClass>();

            instance.Should().NotBeNull();
        }
    }

    /// <summary>
    /// Reals objects are singletons.
    /// </summary>
    [Test]
    public void RealObjectsAreSingletons()
    {
        using (var kernel = new NSubstituteMockingKernel())
        {
            var instance1 = kernel.Get<DummyClass>();
            var instance2 = kernel.Get<DummyClass>();

            instance1.Should().BeSameAs(instance2);
        }
    }

    /// <summary>
    /// The injected dependencies are actually mocks.
    /// </summary>
    [Test]
    public void TheInjectedDependenciesAreMocks()
    {
        using (var kernel = new NSubstituteMockingKernel())
        {
            var instance = kernel.Get<DummyClass>();
            instance.DummyService.Do();

            instance.DummyService.Received().Do();
        }
    }

    public interface IDummyService
    {
        void Do();
    }

    public class DummyClass
    {
        public DummyClass(IDummyService dummyService)
        {
            this.DummyService = dummyService;
        }
        public IDummyService DummyService { get; set; }
    }
}