2010-03-09 5 views
1

MVP 패턴을 사용하여 ASP.NET WebForm 응용 프로그램을 작성하고 있습니다. 모든 Web Form에 대해 UI 및 비즈니스 논리를 처리하기 위해 연결된 Presenter 클래스가 있습니다. 그러나 Presenter에 대한 단위 테스트를 작성할 때 세션 값이 발표자에서 사용되므로 문제가있었습니다. 그리고 단위 테스트 (BTW는 nUnit을 사용함)를 실행하는 동안 HTTP 컨텍스트가 존재하지 않으므로 발표자를위한 단위 테스트를 작성할 수 없습니다.ASP.NET 웹 양식의 테스트 발표자

누구나 단위 테스트 방법을 설명 할 수 있습니까?

감사

+0

난이 조금 오래된 질문 알고 있지만 발표자가 Sessoin 개체에 액세스 할 수있는 이유를 말해 주실 래요? 난 당신이보기에서 세션 값을 전달할 수있는 당신은 HttpContext에 의존하지 않으므로 조롱이 필요하지 않을 것을 의미합니다. 나는이 물건을 처음 접한 이래로 물어 본다. – jim

답변

1

HttpContextBase에 종속되도록 Presenter 클래스를 변경할 수 있습니다. 이 작업이 완료되면 테스트를 위해 발표자 클래스에 HttpContext의 조롱 된 버전을 제공 할 수 있습니다. 프로덕션에서는 HttpContext.Current 속성을 제공하기 만하면됩니다.

1

흠, 나는 또 다른 접근법을 제안 할 것이다. 난 당신이 그것을 테스트해야하기 때문에 귀하의 발표자 HttpContext, PageLifeCycle 등 인식해서는 안된다 생각합니다. 따라서 IHttpContext를 모방하려는 것보다, 발표자 (당신은 전체 httpcontext 객체가 필요없고 세션의 일부 값, 쿠키 등)에 필요한 값을 추출하고 발표자 생성자를 통해 발표자에 삽입해야합니다. 이제 제대로 테스트 할 수 있습니다.

건배

관련 문제