在React Native库中有一个用于Bundles的类https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/bridge/Arguments.java。我使用PowerMockito模拟Arguments.createMap()方法并返回一个包含以下代码段的对象:
PowerMockito.when(Arguments.createMap()).thenAnswer(
new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new JavaOnlyMap();
}
});
我在测试运行时使用以下消息测试错误的方法:
java.lang.UnsatisfiedLinkError: no reactnativejni in java.library.path
执行此行时:
WritableMap map = Arguments.createMap();
有什么想法吗?
答案 0 :(得分:0)
将Answer<Object>
提取到变量。当您使用new
运算符作为参数时,Mockito不喜欢它。
尝试这样的事情:
Answer<Object> answer = new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new JavaOnlyMap();
}
}
PowerMockito.when(Arguments.createMap()).thenAnswer(answer);