java - Power mockito 验证静态调用真实方法

标签 java junit powermockito

我试图验证在使用 powerMockito 1.6.4 测试服务方法时从未调用过静态方法

我关注了This answer做同样的事情。

以下是我的代码。

@RunWith ( PowerMockRunner.class)
@PrepareForTest ( MyClass.class)
@PowerMockIgnore ( "javax.net.ssl.*")
public class SomeTests
{
 @Test
    public void testMyMethodIsNotCalled() throws Exception
    {
        PowerMockito.mockStatic(MyClass.class);
        underTest.testMethod();
        PowerMockito.verifyStatic(Mockito.never());
        MyClass.myMethod(Mockito.any());
    }
}

我现在面临的问题是,MyClass.myMethod(Mockito.any());调用真正的myMethod并给出nullPointerException。

我的假设是 MyClass.myMethod(Mockito.any());PowerMockito.verifyStatic(Mockito.never()); 一起使用,以便指定静态方法待验证。

我错过了什么吗?

最佳答案

你还必须模拟静态方法行为

即像这样的东西

PowerMockito.mockStatic(NameOfClass.class);
expect( NameOfClass.nameOfMethod((URL)Mockito.any(),Mockito.anyString())).andReturn(actualOutput);

引用Mock method with parameters

关于java - Power mockito 验证静态调用真实方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58743855/

相关文章:

java - 在java中如何按频率然后按字母顺序对字符串进行排序?

java - 运行来自 IntelliJ IDEA 的 @Category 注解的方法

java - Selenium WebDriver - 两部分 - 1) AssertEquals 失败测试失败 2) 验证元素不存在

java - Mockito:结合@Autowired和@Mock

java - Powermockito 模拟静态方法匹配器不起作用

java - 具有线程消费者和生产者的循环缓冲区 : it get stucks some executions

在循环内定义的Java变量在循环外似乎无法被识别?

java - 从日历转换时sql.Timestamp 1秒错误

java - 如何使用额外的 mockito 参数测试参数化单元测试用例?

Powermock 与 Guidewire 集成