不能 Mockito 使用本机 init 方法模拟 class

Can't Mockito mock a class with a native init method

原生初始化方法我的意思是 class 中的字段由本机方法初始化。这是我的代码。

class Operator {
    private sr = new SR();
    ...
}

class SR {
    public SR() {
        aNative.new_instance(); // where the native method is called
    }
}

当我模拟 Operator 时,它会抛出一个异常: 底层异常:java.lang.IllegalArgumentException:无法创建类型

我的java版本是8。mockito-inline版本是3.9.0。 bytebuddy 版本是 1.10.20。我曾经将 java 版本更改为 11,但它不起作用。

我可以在没有本机 init 方法的情况下模拟其他 classes。

Mockito 不支持模拟本地方法: Mockito - mocking classes with native methods

一个选项是 Powermock。