不能 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。
原生初始化方法我的意思是 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。