2014-09-29 1 views
2

UserName 인증 및 PrincipalPermission 인증이 활성화 된 WCF 서비스가 있습니다.유닛 테스트 인증 및 권한 부여가 활성화 된 WCF 서비스 클래스

어떻게 단위 테스트 할 수 있습니다.

서비스 :

[PrincipalPermission(SecurityAction.Demand, Role = "Admin")] 
    public void UploadEmployees(CustomerRequest request) 
    { 
     try 
     { 
      ProcessEmployees(request.PacketId, request.Employees); 
     } 
     catch (Exception ex) 
     { 
      throw new FaultException<CustomerException>(new CustomerException { Status = -1, ErrorMessage = ex.Message }); 
     } 
    } 

내 NUNIT 시험 방법 :

[Test] 
    public void CallProcessEmployee_Should_Work() 
    { 
     var service=new CustomerService(); 
     var request = new CustomerRequest(); 
     service.UploadEmployees(request); 
    } 

내가 같은 오류가 발생하고 단위 테스트를 실행하려고 :

System.Security.SecurityException : Request for principal permission failed. 

어떻게 단위 테스트 인증 및 권한 부여가 활성화 된 클래스에서.

[SetUp] 
    public void SetupUnitTestPrinciple() 
    { 
     var identity = new GenericIdentity("Unitest"); 
     System.Threading.Thread.CurrentPrincipal = new CustomPrincipal(identity); 
    } 
[MSTEST PrincipalPermission (
+0

의 가능한 복제 http://stackoverflow.com/questions/1106163/ : –

답변

5

는 I는 "SETUP"생성 방법 다음과 같이 현재 스레드 주체를 설정함으로써이 문제를 해결 mstest-principalpermission)