如何从 JNI 代码进行 JNIT 测试回调



这是我得到的场景:

我已经为一个利用 c++ 库的 android 应用程序编写了 Java 代码。因此,Java 代码使用 JNI 以便能够使用该库。java 代码调用 JNI 层中的方法以调用库方法。问题是这些方法没有为我正在进行的调用返回值,因为它是针对网络的东西,所以在 JNI 层中,我异步接收一些事件,我使用回调将这些事件发送到 Java。我的问题是,如何对此功能进行 junit 测试?我的意思是,我如何测试我是否从 Java 执行本机方法调用,并在从 JNI 调用的回调中收到预期的结果?我希望我已经正确解释了自己,如果您什么都不明白,请随时询问。

您可能将

回调设置为JUnit类的函数,然后从JUnit testSmth()函数调用API,然后等待某个锁定,直到回调发生。在回调中,您通知锁,因此您的testSmth()停止等待并继续并进一步调用,例如,success() 。您可以呼叫lock.wait(timeout)因此,如果超时到期,您可以从testSmth()调用fail()

最新更新