1

我想知道是否有方法可以使用Ninject注入依赖关系到MS单元测试类的构造函数。依赖注入到MS单元测试中使用Ninject的构造函数

这里是仓库

public Class StudentRepository : IRepository 
{ 
    SchoolContext schoolContext; 

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

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

} 

的代码片段这里是国际奥委会配置

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); 
    } 

} 

回答

1

就我所知,MSTest没有DI的挂钩。

但通常你不应该这样做,因为单元测试应该保持简单。只需将Fakes/Mocks注入被测试的类中,这可以很容易地在没有IoC容器的情况下完成。