2013-09-03 4 views
2

ASP.NET MVC 4 웹 응용 프로그램 용 Visual Studio 2012의 단위 테스트 프로젝트에서 작업하고 있습니다.Unit Test에서 resx 파일을 연결하십시오.

  • AdminUI
  • UnitTests UI를가 App_GlobalResources 폴더 내의 locatization위한 몇몇 RESX 파일을 보유하고 사용

  • 웹 UI : 용액 3 개 프로젝트를 갖는

    HttpContext.GetGlobalResourceObject("Resources", key).ToString() 
    

    문자열을 가져옵니다.

    이제 로컬 화를 사용하는 동작 방법을 단위 테스트해야합니다. 단위 테스트 중에 문자열을 가져오고 싶습니다. 여기

    내가

    내가 GetGlobalResourceObject 방법을 모의 관리 한 일이고 나는

    내가 Resources.resx가 링크

    I로 UnitTests 프로젝트에 파일을 추가해야하는 모든 문자열을 보낼 수 있습니다

    • 빌드 작업 : 포함 리소스
    • C 링크의 속성을 편집 opy 출력 디렉터리 :

    실제로 사용하여 문자열을 검색 할 수 있습니다 GlobalResourceProxyGenerator : 나는 원래 RESX 파일에 새 문자열을 추가하는 경우,

    Resources.stringName 
    

    을하지만 (

  • 사용자 정의 도구를 복사하지 마십시오 WebUI 프로젝트의 경우), 모든 것이 망가지고 솔루션을 구축 할 수 없습니다.

    링크가 원본 파일을 반영하지 않습니까?

  • 답변

    1

    설명하는 것은 실제로 단위 테스트가 아닙니다. 단위 테스트는 외부 리소스에서 릴레이해서는 안됩니다.

    "내가 GetGlobalResourceObject 메서드를 조롱 할 수 있었다"고 말하면 HttpContextBase.GetGlobalResourceObject (컨트롤러에서 액세스 가능)로 작업하고 있다고 가정합니다.

    단위 테스트 목적으로 resx 파일이 필요하지 않습니다. 그 조롱 된 메소드에 적절한 호출을 설정하기 만하면 필요한 모든 것을 반환합니다.

    +0

    사실 그렇습니다. resx 파일을 테스트하면 유닛이 통합 테스트를 테스트합니다. GetGlobalResourceObject를 인터페이스 내에 랩핑하고 해당 인터페이스를 조롱 할 수 있습니다. 그렇지 않으면 단순히 테스트의이 부분을 포기하십시오. 감사합니다. !!! – user1639762

    관련 문제