我正在使用C#MOQ库.
让我们说我想UnitTest为这段代码创建一个:
if(condition){
privateMethod();
}
else{
logger.info("didn't hit")
}
Run Code Online (Sandbox Code Playgroud)
我想检查是否privateMethod被击中,我不能使用该Verify功能,因为它是私人的.我怎样才能做到这一点?
我想添加一个Status专门用于单元测试的成员,它将在退出测试方法之前保留最后一个位置.
小智 8
不要测试私有方法.它们是该类的私有实现细节.您应该只测试执行公共方法的结果.
正确设计的SOLID代码永远不会让您处于需要您进行私人模拟的位置.
根据您是否要更改设计,您可以采取的方法很少:
无论你选择哪个我都留给你.但是,我将再次强调它 - 模拟私有方法不是单元测试,库或工具问题 - 这是一个设计问题,并且最好可以解决.
| 归档时间: |
|
| 查看次数: |
1680 次 |
| 最近记录: |