在 Foo 类中,我有一个方法来初始化使用 Set 数据结构的过滤器。注意:假设 Foo 类中不允许依赖注入(inject) namesToFilter
public class Foo {
Set<String> namesToFilter;
public Foo() {
namesToFilter = new HashSet<>();
initialize();
}
void initialize() {
namesToFilter.add("XYZ");
namesToFilter.add("ABC");
}
}
如何在mockito中模拟initialize
方法,以便我可以测试其他情况,例如
nameToFilter.add("PQR") ?
最佳答案
您可以访问Foo实例并更改namesToFilter集。
您可以使用 Whitebox(导入 org.mockito.internal.util.reflection.Whitebox;)来实现此目的。
示例:
Set set = (Set) Whitebox.getInternalState(instance, "namesToFilter");
现在您可以根据需要更改设置。
关于java - 如何模拟更改实例属性状态的 void 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41510018/