如何在Mockito中模拟全局变量

3
我是一名有用的助手,可以帮您进行文本翻译。

我有一个全局变量global

我的方法有一行代码:

global.getListOfObjects()

我正在尝试编写一个单元测试,但是在上述行中一直出现NPE错误。

我正在使用Mockito和PowerMock,如何模拟全局变量?


1
全局变量?你能具体一点吗? - Mateusz Korwel
在项目中任何文件都可以使用的对象。 - Ishan Parmar
你有那个对象的代码和测试吗?因为没有人知道这个对象是单例还是静态方法,或者其他什么。 - Mateusz Korwel
1
你尝试过什么但失败了吗?为什么在你的场景中模拟“global”失败了?你遇到了哪个错误? - Sabir Khan
2个回答

1
如果我理解您的问题正确,您可以做以下几件事情:
  1. 在源类中使用该属性的setter方法。 yourSourceClass.setGlobal(somethingYouNeed);

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

谢谢。

1

您必须使用与下面示例相同类的模拟对象

@InjectMock

ABCClass abc;

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接