Ninject GetService из модульного теста, возвращая ноль - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь внедрить интерфейс из модульного теста, но когда я отлаживаю его, «_setupRepository» имеет значение null. Что мне здесь не хватает? Есть ли какой-нибудь умный способ сделать это? Я просто хочу проверить метод очень быстро.

[TestFixture]
public class MyTest
{
    private ISetupRepository _setupRepository;

    [SetUp]
    public void SetUp()
    {
        var ndp = new NinjectDependencyResolver();
        var kernel = ndp._kernel;
        _setupRepository =  kernel.TryGet<ISetupRepository>();
        ndp.GetService<ISetupRepository>();

    }
}

NinjectDependencyResolver.cs

public class NinjectDependencyResolver : IDependencyResolver
{
    public IKernel _kernel;

    public NinjectDependencyResolver()
    {
        _kernel = new StandardKernel();
        AddBindings();
    }

    public object GetService(Type serviceType)
    {
        return _kernel.TryGet(serviceType);
    }

    public IEnumerable<object> GetServices(Type serviceType)
    {
        return _kernel.GetAll(serviceType);
    }

    private void AddBindings()
    {
        NinjectWebCommon.RegisterServices(_kernel, true);
    }
}

NinjectWebCommon.cs

public static class NinjectWebCommon
{
    public static void RegisterServices(IKernel kernel, bool isFromNinjectDependencyResolver)
    {
        kernel.Bind<ISetupRepository>().To<SetupRepository>().InRequestScope().WithConstructorArgument("connectionString", eIdConnectionString);
    }
}
...