2011-02-17 2 views
3

내 단위 테스트 방법으로 HttpRuntime에 액세스 할 수 있습니까? HttpRuntime이 현재 컨텍스트에 존재하지 않는다는 것을 나타낼 때마다 액세스하려고 시도합니다. 캐시 변수에 대한 액세스를 테스트하고 싶은 내 타겟 메소드에서VisualStudio UnitTest의 HttpRuntime


    HttpRuntime.Cache[key]; 

가능합니까? 또는 나는 무엇이라도 여기에서 놓치고있다?

답변

1

SimpleWorkerRequest 객체를 사용하여 유닛 테스트 내에 HttpContext를 만들 수 있습니다.

 
TextWriter writer = new StringWriter(); 
HttpWorkerRequest httpRequest = new SimpleWorkerRequest("virtualDir", "physicalDir", "page", "", writer); 
HttpContext.Current = new HttpContext(httpRequest); 
HttpContext.Current.Cache[key] = some value.. 
1

가장 좋은 방법이 될 것

덕분에 직접 httpRuntime을 액세스 할 수있는 대상 방법을 리팩토링하는 대신 매개 변수로이 정보를 전달하거나이 httpRuntime을 랩 인터페이스에 이야기하도록. 그렇게하면 HttpRuntime에 대한 의존성을 깨고 일을 훨씬 쉽게 테스트 할 수 있습니다.

관련 문제