如何用mockito模拟静态方法?

Bhu*_*van 3 java junit mockito

我正在为Junits使用mockito

我知道mockito donot模拟静态方法,但有没有办法解决这个问题,而不是使用powermock?

谢谢

Bri*_*ice 5

我认为可能的解决方法是将静态方法封装在实例中.或静态方法背后的真实实例.

虽然这意味着你必须修改你的生产代码.

老实说,如果你现在问自己这个问题,那么你在开发过程中测试代码的时间太晚了.(现在传福音;))如果您正在练习TDD,您会早期注意到这个问题,并尽早调整您的设计,以便使用经典测试软件完全测试.

我在练习TDD时亲自使用"疼痛指标",看看我的设计是否合适.当然,一切都取决于背景,但通常这是良好设计的良好指标(至少对我和其他一些人而言).

所以我的建议摆脱了这些静态方法或修改你的设计,不依赖于静态方法模拟.

干杯

  • +1"摆脱这些静态方法".静态方法是可测试性的噩梦; 避免它们会使保证代码质量变得更加轻松. (4认同)