Я пытаюсь внедрить интерфейс из модульного теста, но когда я отлаживаю его, «_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);
}
}