C# Rhino Mock:模拟私有方法调用c
可以模拟priavte方法调用 范例C# Rhino Mock:模拟私有方法调用c,c#,.net,unit-testing,rhino-mocks,C#,.net,Unit Testing,Rhino Mocks,可以模拟priavte方法调用 范例 Public void StartProcess(string valueFound) { if(this.value == valuefound) { MockThisPriavteMethodCall(); } AnotherPrivateMethodCallIDontNotWantToMockOut(); } 这种情况是,我想测试一个私有方
Public void StartProcess(string valueFound)
{
if(this.value == valuefound)
{
MockThisPriavteMethodCall();
}
AnotherPrivateMethodCallIDontNotWantToMockOut();
}
这种情况是,我想测试一个私有方法,但我想模拟另一个方法的结果
在上面的示例中,我希望能够模拟方法调用MockThisPriavtMethodCall,但我希望运行另一个名为DontWantMockout的私有方法
我可以使用某种形式的expect吗
这可以在Rhino Mock中实现吗?这是正确的想法吗
另外:我正在尝试测试ViewModel类中的代码
上面的例子也表明它是少数几种公共方法之一。这些方法调用许多不同的私有方法。它再次调用了许多私有方法
我应该测试允许代码通过几个分支的某些路径和情况,还是应该只测试它们自己的方法?模拟是从被测对象到依赖项使用的-在您想要模拟测试所针对的同一对象中的部分代码时,有点不对劲
很难从伪代码中分辨出太多内容,但听起来您可能想为要伪造的代码引入一个新的依赖项。如果你能给我们更多关于上下文的具体细节,这将非常有帮助。模拟是从被测对象到依赖项使用的——当你想模拟测试对象中的部分代码时,有些地方是不对的
很难从伪代码中分辨出太多内容,但听起来您可能想为要伪造的代码引入一个新的依赖项。如果你能给我们提供更具体的上下文细节,这将非常有帮助。没有一个干净的方法可以直接做到这一点 您可以通过将方法调用更改为protected,并创建一个从类继承的可测试类,并通过这种方式为它创建期望来实现这一点 话虽如此,你在这里可能用错了嘲弄。很明显,您希望从方法返回一个伪值,一旦您使该方法受到保护,您可以按如下方式执行此操作:
myclass.Stub(s => s.MockThisMethodCall()).Return("WhateverValueYouExpect");
没有一个干净的方法可以直接做到这一点 您可以通过将方法调用更改为protected,并创建一个从类继承的可测试类,并通过这种方式为它创建期望来实现这一点 话虽如此,你在这里可能用错了嘲弄。很明显,您希望从方法返回一个伪值,一旦您使该方法受到保护,您可以按如下方式执行此操作:
myclass.Stub(s => s.MockThisMethodCall()).Return("WhateverValueYouExpect");
@乔恩·斯基特,是的,我认为你是对的。我在上面添加了更多的细节,希望有助于解释我的想法。我担心的不是代码,而是我应该如何考虑如何对这类代码进行单元测试。@user101010101:老实说,这还不是很清楚。您应该通过公共方法或潜在的内部方法来测试私有方法。@Jon Skeet,是的,我认为您是正确的。我在上面添加了更多的细节,希望有助于解释我的想法。我担心的不是代码,而是我应该如何考虑如何对这类代码进行单元测试。@user101010101:老实说,这还不是很清楚。您应该通过公共方法或潜在的内部方法来测试私有方法。