2009-05-15 5 views
1

나는 컨트롤러가단위 테스트 asp.net mvc - viewengine보기를 찾을 수 있습니까?

return View(); 

또는 무엇이든을 반환하고 viewengine 뷰를 찾을 수 없을 때 우리의 MVC 설정에서 공통의 파손 지점이 있음을 발견하고있다.

내 컨트롤러를 테스트 한 다음 결과 ViewResult에서 ExecuteResult를 실행할 수 있지만 기본 ViewEngine은 가상 디렉터리에 연결되어있어 테스트 방법을 파악할 수 없습니다.

이상하게도 실제로보기를 렌더링 할 수있을뿐만 아니라 그것이 발견되었는지를 확인하고 싶습니다.

인터넷에서 이것에 대해 너무 많이 찾을 수 없으며 '테스트 할 수있는'asp.net mvc이 실제로 어떻게되는지 궁금합니다.

답변

1

당신의 문제는 당신이 너무 많이 테스트하려고한다는 것입니다. 하지만 일부 초기 시작 포인트는 조금 어려운 코드를 보지 않고

는 : - 컨트롤러가 분리되어야하며, 기본 웹 서버 설정에 의존하지

1) 가상 디렉터리에서 컨트롤러를 분리. 이것을 통해 당신은 무엇에 접근하고 있습니까?

컨트롤러가 ViewResult를 반환합니다. 모델에 첨부 된 모델이 있어야 올바른 데이터가보기로 전달되는지 확인할 수 있습니다. stubs \ mocks 및 종속성 삽입을 사용하여 컨트롤러를 확인하면 데이터베이스 리포지토리와 같은 기본 서비스에 올바르게 통신하고 있습니다.

리포지토리 구현을 다루기위한 별도의 통합 테스트 세트를 준비하십시오.

2) Watin과 같은 웹 테스트 프레임 워크를 사용하여보기 렌더러를 예상대로 확인하십시오. 이렇게하면 웹 페이지 및 HTML dom과 상호 작용하여 예상대로 작동하는지 확인할 수 있습니다. 단위 테스트를 통해 컨트롤러를 테스트하십시오. 두 개의 서로 다른 레이어에 대한 두 개의 개별 테스트.

단위 테스트의 목적은 테스트와 코드를 가능한 한 격리 된 상태로 유지하는 것입니다.

관련 문제