【问题标题】:how to mock global variable in Mockito如何在 Mockito 中模拟全局变量
【发布时间】:2016-04-26 11:22:49
【问题描述】:

我有一个全局变量global

我的方法有一行:

global.getListOfObjects()

我正在尝试编写单元测试并在上述行中不断获得 NPE。 如何模拟全局变量?

我正在使用 Mockito 和 PowerMock。

【问题讨论】:

  • 全局变量?你能说得更具体点吗?
  • 项目中任何文件都可以使用的对象。
  • 你有那个对象的代码吗?和测试?因为没有人知道对象是 Singleton,还是只是静态方法,还是别的什么。
  • 你尝试过什么但失败了?为什么在您的场景中模拟 global 失败了?你得到哪个错误?

标签: java global-variables mockito powermock


【解决方案1】:

使用必须有与下面相同类的mock对象

@InjectMock

ABC类 abc;

现在您可以在需要该值的测试用例中将全局变量设置为 abc.global = value。

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,这些是您可以做的事情:

    1. 在源类中使用该属性的 setter 方法。 yourSourceClass.setGlobal(somethingYouNeed);

    2. 如果这是一个公共成员,您可以从您的测试类中分配该公共成员值。喜欢: yourSourceClass.global = <somethingYouNeed>;

    谢谢。

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 2016-11-15
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多