静态方法与任何对象都不相关-
您的对象与对象
helper.fetchUsernameFromInternet(...)相同(但有点混乱)
HelperUtils.fetchUsernameFromInternet(...)-因此,您甚至应该收到编译器警告
helper.fetchUsernameFromInternet。
而且,不必
Mockito.mock模拟静态方法,而必须使用:
@RunWith(...),
@PrepareForTest(...)然后
PowerMockito.mockStatic(...)在这里有完整的示例:PowerMockito模拟单个静态方法并返回对象
换句话说,模拟静态方法(以及构造函数)有些棘手。更好的解决方案是:
如果可以更改
HelperUtils
,请将该方法设置为非静态,然后可以HelperUtils
使用通常的方法进行模拟Mockito.mock
如果您不能更改
HelperUtils
,请创建一个包装类,该包装类委派给原始对象HelperUtils
,但没有static
方法,然后使用常规方法Mockito.mock
(这种想法有时称为“不要嘲笑您不拥有的类型”)



