gpt4 book ai didi

unit-testing - 如何覆盖/控制 JVM 获取系统日期的方式?

转载 作者:行者123 更新时间:2023-12-05 00:06:59 25 4
gpt4 key购买 nike

您如何模拟/欺骗 JVM 以获取当前系统日期以外的日期?我在 JUnit 中有一组测试,我不想更改,但我想更改一个设置,以便当 JVM 检索日期时,它检索我想要的日期。

你以前做过类似的事情吗?

谢谢。

最佳答案

有几种方法可以做到这一点:

  • 如果您可以重写代码 - 如其他答案中所述,基本上您需要一个可配置的 NowProvider、DateFactory 或其他策略(我喜欢可注入(inject)的 NowProvider.now() 作为 System.currentTimeMillis 自己的替代品)
  • Powermock 和其他一些工具包让您可以使用 ClassLoader 技巧来 override static methods, even system methods
  • 关于unit-testing - 如何覆盖/控制 JVM 获取系统日期的方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548922/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com