测试期间模拟/存根Arguments.createMap

时间:2017-11-28 14:24:05

标签: java android react-native bundle

在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();

有什么想法吗?

1 个答案:

答案 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);