我正在编写一个测试应用程序来测试服务中的操作合同
测试客户:
这是我如何从我的测试中调用以获取返回的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);
}
从我的测试中,我的目标是测试操作符方法,但在进程操作符中我不想这样做 到达转移(消息)我希望它在验证后立即退出并获得结果。
如何从我的测试应用程序中以编程方式修改它?感谢
注意:transfer方法将解析和验证的方法发送到另一个服务,我想阻止它将请求发送到该服务。
答案 0 :(得分:3)
为什么不尝试扩展包含OperationProcess函数的类并覆盖该函数,然后调用被覆盖的函数,该函数只执行您关心的几个部分...您可以保留您关心的函数中的部分并且只有您需要测试的功能。
答案 1 :(得分: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);
}