Внедрение зависимостей в конструктор в MS Unit Test с использованием Ninject

Я хотел бы знать, есть ли способ внедрить зависимости в конструктор класса MS Unit Test с помощью Ninject.

Вот фрагмент кода для репозитория

public Class StudentRepository : IRepository
{   
   SchoolContext schoolContext;

   public StudentRepository ()
   {
       schoolContext= new SchoolContext();
   } 

   public IEnumerable<Student> GetAll()
   {
       return DBContext.Students.ToList();
   }

} 

вот код для конфигурации IOC

public class IocConfig
{
    public static void RegisterIoc()
    {
        var kernel = new StandardKernel();
        kernel.Bind<IRepository>().To<StudentRepository>();          
    }
}

Вот код для модульного теста MS.

[TestClass]
public Class StudentReposiotryTest    
{     

    public IRepository studentRepository;

    [ClassInitialize]
    public static void StudentReposiotryInitialize(TestContext context)
    {
        IocConfig.RegisterIoc();            
    }

     public StudentReposiotryTest(IRepository repository)
     {
         studentRepository= repository;
     }      


    [TestMethod]
    public void GetAllStudentsTest()
    {            
        List<Student> students =  studentRepository.GetAll();
        Assert.IsTrue(students.Count > 0);
    }   

}

person Nayan    schedule 13.02.2013    source источник


Ответы (1)


Насколько я знаю, у MSTest нет хуков для DI.

Но обычно вам не нужно этого делать, потому что модульные тесты должны быть простыми. Просто введите Fakes/Mocks в тестируемый класс, это легко сделать без контейнера IoC.

person Remo Gloor    schedule 15.02.2013