【发布时间】:2016-02-08 17:33:04
【问题描述】:
我目前正在创建一个 Android 库以用于 React Native 项目。我需要向 javascript 发出地图,所以我使用的是 react native 的 WriteableMap 类。不幸的是,该类将 reactnativejni SO 加载到静态块中,这会在单元测试期间导致 UnsatisfiedLinkError。我正在使用 JUnit 和 Mockito 进行测试。
我的代码:
@Override
public void onSomething() {
WritableMap params = Arguments.createMap();
//fill map
sendEvent("onChange", params);
}
错误:
java.lang.UnsatisfiedLinkError: no reactnativejni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:172)
at com.facebook.react.bridge.NativeMap.<clinit>(NativeMap.java:23)
at com.facebook.react.bridge.Arguments.createMap(Arguments.java:29)
at me.MyClass.onSomething(myClass.java:23)
在看到有关为单元测试存根 WriteableMap 的评论后,我开始使用 Arguments.createMap() 方法,但它是静态的,我宁愿不必存根静态方法。
在运行单元测试时有什么方法可以消除这个错误吗?
【问题讨论】:
标签: android junit mockito react-native unsatisfiedlinkerror