gpt4 book ai didi

java - PowerMock在queue.add方法中抛出空指针异常

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:36 24 4
gpt4 key购买 nike

我正在使用 Powermock 对类进行单元测试。

该类有一个对象列表队列作为私有(private)成员。我使用 PowerMock createPartialMock 部分模拟其中两个方法(例如 A 和 B),然后显式调用方法 C 并进行验证。

Class Sample {
Queue<List> q;

public C() {
A();
B();
q.add(List);
}

private A() {}
private B() {}
}

Class Test {
void testSomeMethod() {
Sample mock = PowerMock.createPartialMock(Sample.class, "A", "B");
PowerMock.expectPrivate(Sample.class, A).thenReturn("true");
PowerMock.expectPrivate(Sample.class, B).thenReturn("true");

mock.C();
PowerMock.verify(mock);
}
}

现在,当我运行测试时,PowerMock 在 q.add(List); 行抛出异常。

任何人都可以指出我犯了什么错误吗?我也期望 q.add() 方法调用吗?

最佳答案

您应该以某种方式为 Sample 类的 q 属性分配一个值。这可以在构造函数上通过 setter 方法或反射(Whitebox 类或纯 Java 反射代码)来完成。

如果需要检查某个项目是否添加到 q 中,请创建 Queue 接口(interface)的模拟。

关于java - PowerMock在queue.add方法中抛出空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31438593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com