2013-11-24 2 views
0

방법을 변경하는 방법프로그래밍 나는 서비스에 운영 계약을 테스트하기 위해 테스트 응용 프로그램을 쓰고 있어요

테스트 클라이언트 :

여기

내가 돌려받을 내 시험에서 전화를 만드는 중이라서 어떻게 부울 값

bool operateResult = TestContext.ServiceOperator.Operate(ref Inputmessage); 

서비스 :

(가) 방법은 위의 다른 방법을 호출 운영

 bool Operate(){ 
     OperatorProcess(msg, interface); 
     } 

     private bool OperatorProcess(ref Message MessageData, string SendInterface) 
     { 
     parse(message); 
     validate(message); 
     Transfer(message); 
     } 

내 테스트에서 내 목표는 운영자 방법을 테스트하는 것이지만 에 도달하지 않으려는 프로세스 운영자는 유효성 검사 후 결과를 얻으려면 바로 나가기를 원합니다.

어떻게 테스트 응용 프로그램에서 프로그래밍 방식으로 수정할 수 있습니까? 감사합니다

참고 : 전송 방법은 구문 분석되고 유효성이 검사 된 메서드를 다른 서비스로 보내고 요청을 해당 서비스로 보내지 못하게하고 싶습니다. 당신이 원하지 않는 경우

+0

OperatorProcess를 수정할 수 있습니까? – aw04

+0

아니요 ... 저는 테스트 클라이언트에서 서비스가 아닌 경우에만 수정할 수 있습니다. – HXD

+0

그래, 아래 답변을 제안하려고했지만 수정할 수 없다면 할 수있는 일이 많지 않을지 확신 할 수 없습니다. – aw04

답변

1

그런 다음 글로벌 부울 변수 테스트를 선언 테스트하는 동안 true로 설정하고 생산 과정 false로 설정할 수 있습니다, 당신은 방법, 또는

private bool OperatorProcess(ref Message MessageData, string SendInterface) 
{ 
    parse(message); 
    validate(message); 
    if(!TEST) Transfer(message); 
} 

에 유사합니다 글로벌 변수를 생성, 당신은 단지

private bool OperatorProcess(ref Message MessageData, string SendInterface, bool performTransfer) 
{ 
    parse(message); 
    validate(message); 
    if(performTransfer) Transfer(message); 
} 
+0

OperatorProcess 메서드가 클라이언트에 대해 노출되어 있지 않습니다. 즉, Operator 메서드가 내부적으로 사용한 메서드입니다. – HXD

3

왜 당신은 단지를 수행 재정의 된 함수를 호출하고 함수를 OperationProcess 기능을 포함하는 클래스를 확장하고 재정의하지 않는 메소드 서명에 매개 변수를 추가 할 수 있습니다 관심있는 부분이 거의 없음 about ... 당신은 당신이 관심을 갖는 부분들과 당신이 테스트 할 필요가있는 기능들만을 유지할 수 있습니다.

C# examples on how to override

+0

고마워요. 제게 많은 의미가 있습니다. 오늘 나중에 시험해보고 결과를 알려 드리겠습니다. 감사 – HXD

관련 문제