1

ASP.NET MVC 3 프로젝트에서 Ninject를 사용하고 있으며 복잡한 객체 그래프가 있습니다.Ninject (또는 IoC 컨테이너) 바인딩을 테스트하고 있습니까?

내가 필요한 모든 유형이 바인딩 가능한지 확인하기 위해 일부 단위 테스트를하고 싶습니다. 현재 ASPX 오류 페이지를 통해 확인하는 유일한 방법이 있습니다.

이 작업을 수행하는 방법에 대한 문서를 찾는 데 문제가 있습니다.

그것은

_kernel.Get<IService>(); 

를 작성하고 예외가 테스트를 실패시키는 것만 큼 간단? 아니면 DI 용 MVC 후크를 사용하여 이것을 수행하는 더 깨끗한 방법이 있습니까?

+0

간단한 인젝터 DI 컨테이너에는 등록 된 모든 객체를 확인할 수 있는지 확인하는 Verify() 메소드가 있습니다. 구성 단계가 끝나면 전화를 통해 장애를 빠르게 처리 할 수 ​​있습니다. 단위 테스트에서 전체 구성을 실행하여 더 빨리 실패합니다. 다른 DI 컨테이너의 기능을 허용해야하는지 모르겠습니다. – Steven

답변

3

일반적인 단위 테스트 이외에도 Ninject 바인딩을 비롯하여 UI와 DB를 제외한 모든 테스트를 테스트합니다. 따라서 우리는 프로덕션 환경에서 모든 것을 설정하고 이러한 부분을 mock에 리 바인드합니다. 이것은 또한 Ninject 바인딩을 테스트합니다.

MVC의 경우, 커널을 생성하고 프로덕션에서와 동일한 모듈을로드하고 DB 액세스를 리 바인드해야 함을 의미합니다. 그런 다음 컨트롤러의 인스턴스를 만들고 테스트 할 작업을 호출하고 예상대로 작동하는지 확인합니다.

관련 문제