1

나는 Ninject를 사용하여 MS Unit Test 클래스의 생성자에 종속성을 주입 할 수있는 방법이 있는지 알고 싶습니다. 여기 Ninject를 사용하여 MS Unit Test의 생성자에 대한 의존성 주입

여기 IOC 구성 여기

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

의 코드는 MS 단위 테스트를위한 코드입니다

public Class StudentRepository : IRepository 
{ 
    SchoolContext schoolContext; 

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

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

} 

저장소

에 대한 코드입니다.

[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에 대한 후크가 없습니다.

하지만 일반적으로 단위 테스트는 간단하게 유지해야하므로 그렇게하지 않아도됩니다. 테스트중인 클래스에 Fake/Mocks를 삽입하면 IoC 컨테이너없이 쉽게 수행 할 수 있습니다.