Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单元测试JNI调用 我有一些C++代码的Android JNI包装器。C++代码有自己的一组单元测试。 我想为JNI包装器类编写Java单元测试_Android_Unit Testing_Android Ndk_Java Native Interface_Jniwrapper - Fatal编程技术网

单元测试JNI调用 我有一些C++代码的Android JNI包装器。C++代码有自己的一组单元测试。 我想为JNI包装器类编写Java单元测试

单元测试JNI调用 我有一些C++代码的Android JNI包装器。C++代码有自己的一组单元测试。 我想为JNI包装器类编写Java单元测试,android,unit-testing,android-ndk,java-native-interface,jniwrapper,Android,Unit Testing,Android Ndk,Java Native Interface,Jniwrapper,是否有一种方法可以从桌面控制台(例如Windows)对Android JNI.so包装器API进行单元测试?可能使用桌面Java框架,但使用所有Android SDK调用 因为调用本机的类只是一个包装类,所以您可以对JNI层进行单元测试。如果这就是您想要的,那么直接对JNI函数进行单元测试将有点困难。但是,您仍然可以将完成所有工作的JNI函数的“核心”放在一个单独的.c文件中。因此,基本上,您将在JNI类中包含您的新类,并使该类完成所有工作。现在,您将拥有一个.c类,其中包含一组可以轻松进行单元

是否有一种方法可以从桌面控制台(例如Windows)对Android JNI
.so
包装器API进行单元测试?可能使用桌面Java框架,但使用所有Android SDK调用

因为调用本机的类只是一个包装类,所以您可以对JNI层进行单元测试。如果这就是您想要的,那么直接对JNI函数进行单元测试将有点困难。但是,您仍然可以将完成所有工作的JNI函数的“核心”放在一个单独的.c文件中。因此,基本上,您将在JNI类中包含您的新类,并使该类完成所有工作。现在,您将拥有一个.c类,其中包含一组可以轻松进行单元测试的方法


希望有帮助

是的,这可能是一种很好的方法,而且非常有效,但重要的是要知道,不同的平台和C库的行为方式略有不同——例如,在32位Android系统上,可能会遇到与为a(通常)构建时不同的细微错误64位开发主机——它不一定会捕获关于实现定义行为的风险假设。正如我在该问题中所说的,C++代码已经有自己的单元测试,C++的C封装也一样。我想要介绍的是JNI代码,它通常具有特定于平台的数据转换,这些转换不能真正移植或隔离到本机C。