2013-11-24 47 views
0

我寫一個測試應用程序的服務來測試一個經營合同如何以編程方式更改的方法

測試客戶端:

這裏是我想提出從我的測試調用來獲取返回bool值

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方法未向客戶端公開其操作方法在內部使用的方法。 – HXD

3

你爲什麼不嘗試再延長包含OperationProcess功能的類並覆蓋函數調用您的重寫的功能,只有做了你關心的部分零件關於...您可以將部件保留在您關心的功能中,並且只保留需要測試的功能。

C# examples on how to override

+0

感謝這對我很有意義......我會在今天晚些時候嘗試,並會讓你知道結果。謝謝 – HXD

相關問題