我正在使用 C# MOQ 库。
假设我想UnitTest
为这段代码创建一个:
if(condition){
privateMethod();
}
else{
logger.info("didn't hit")
}
我想检查是否privateMethod
被击中,我无法使用该Verify
功能,因为它是私有的。我怎样才能做到这一点?
我想过添加一个Status
专用于单元测试的成员,它将在退出测试方法之前保存最后一个位置。
不要测试私有方法。它们是类的私有实现细节。您应该只测试执行公共方法的结果。
正确设计的 SOLID 代码永远不会让您处于需要您进行私人模拟的位置。
根据您是否要更改设计,您可以采取以下几种方法:
无论你选择哪个,我都留给你。但是,我会再强调一次——模拟私有方法不是单元测试、库或工具问题——它是一个设计问题,因此最好解决。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句