小编Pia*_*r88的帖子

使用Moq验证私有方法的执行

我想测试以下逻辑(这显然是我的方法的精简版):

public void myPublicMethod(params) {

    if(some_condition)
        privateMethod1();
    else
        privateMethod2();
} 
Run Code Online (Sandbox Code Playgroud)

我已经模拟了方法中的所有其他依赖项,并且我已经设置了它以便我可以保证some_condition为true.我想要做的是验证我的privateMethod1()只被调用一次,并且根本不调用privateMethod2().这可能与Moq有关吗?

以下是有关该问题的一些注意事项:

  • privateMethod1()和privateMethod2()与myPublicMethod属于同一个类,因此我无法为此类创建模拟对象.
  • privateMethod1/2的主体包含来自包含这些和myPublicMethod的类的许多依赖项,因此将privateMethod1/2分解为它们自己的帮助器类将非常耗时.

有什么想法吗?提前致谢.我愿意接受这不可能做到,但我想知道这种或那种方式.

unit-testing moq mocking private-members

5
推荐指数
2
解决办法
7989
查看次数

标签 统计

mocking ×1

moq ×1

private-members ×1

unit-testing ×1