模拟静态Liferay方法

编程入门 行业动态 更新时间:2024-10-26 06:36:12
本文介绍了模拟静态Liferay方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试像这样模拟PortalUtil.getPortal()方法

I'm trying to mock the PortalUtil.getPortal() method like so

PowerMock.mockStatic(PortalUtil.class); Portal mockPortal = Mockito.mock(Portal.class); Mockito.when(PortalUtil.getPortal()).thenReturn(mockPortal);

我收到以下错误

org.mockito.exceptions.misusing.MissingMethodInvocationException: when() requires an argument which has to be 'a method call on a mock'. For example: when(mock.getArticles()).thenReturn(articles); Also, this error might show up because: 1. you stub either of: final/private/equals()/hashCode() methods. Those methods *cannot* be stubbed/verified. 2. inside when() you don't call method on mock but on some other object. 3. the parent of the mocked class is not public. It is a limitation of the mock engine.

我知道Mockito无法模拟静态方法,但我也在使用PowerMock,它应该可以实现这一点.我也尝试使用PowerMockito.mockStatic()代替PowerMock.mockStatic()

I know Mockito cannot mock static methods but I'm also using PowerMock which is supposed to make this possible. I also tried using PowerMockito.mockStatic() instead of PowerMock.mockStatic()

我在课堂上有以下注释

@RunWith(PowerMockRunner.class) @PrepareForTest(PortalUtil.class)

我想念什么?

推荐答案

使用了这段代码后,我停止获取NPE

After using this bit of code I stopped getting NPE

Portal mockPortal = Mockito.mock(Portal.class); new PortalUtil().setPortal(mockPortal);

更多推荐

模拟静态Liferay方法

本文发布于:2023-10-31 04:00:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1544935.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:静态   方法   Liferay

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!