在Java测试类中模拟本机(jni调用)

时间:2018-12-10 14:03:16

标签: android unit-testing java-native-interface

我找不到使用Mockito或Powermock来模拟本地呼叫的方法。有人可以帮忙吗。

1 个答案:

答案 0 :(得分:0)

假设您拥有:

public class Foo {
    public native String helloFromJni();
}

如果您能够使用PowerMockito,则可以像这样模拟本地调用:

@RunWith(PowerMockRunner.class)
@PrepareForTest(Foo.class)
public class FooUnitTest {
    Foo foo;

    @Before
    public void perTestSetup {
        foo = PowerMockito.spy(Foo());
        PowerMockito.doReturn("Hello").when(foo, "helloFromJni");
    }
}