给定一个递归方法,并使用Microsoft Fakes,我怎么能在第一次调用时调用实际方法并在递归调用时调用shim实现?
简化示例:
public int RecursiveMethod(int param)
{
//method logic and calls
RecursiveMethod(callParam);
return result;
}
现在,如果我使用ShimsContext
并实施AllInstances.RecursiveMethod
,我无法达到我想要测试的实际方法。如果我使用ShimsContext.ExecuteWithoutShims(())
,我会从垫片上下文中退出,而且不会再伪造想要的部分。
我认为我的逻辑中有一个流程,是微软Fakes的新手。