C#单元测试moq框架的mock如何模拟静态方法和私有方法? 5C

MSTest:C#单元测试moq框架的mock如何模拟静态方法和私有方法?

2个回答

mock是基于接口的,私有方法并不在其测试用途之列。本身就没法在接口里面定义出私有方法。
如果非要模拟,作为变通,可以采用桥接设计模式,在类里面定义内嵌类(以获得友元类的效果,C#本身不支持友元类),然后调用私有方法或者静态方法,再暴露成共有方法。
你的moq框架去mock这个内嵌类型。

使用映射获取私有对象和静态对象,然后用SetValue设置

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!