我正在Android Studio中运行单元测试。我有一个使用以下代码加载本机库的Java类
static
{
System.loadLibrary("mylibrary");
}
但是当我在src/test
目录中测试此类时,我得到
java.lang.UnsatisfiedLinkError: no mylibrary in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
我如何才能找到位于本地的.so库的路径,src/main/libs
以便进行无误的单元测试?
注:里面src/main/libs
的目录我有3个子目录:armeabi
,mips
和x86
。其中的每一个都包含正确的.so文件。我正在使用
非实验版本 来构建NDK库。
我不想使用其他第三方测试库,因为我所有其他“纯” java类都可以进行单元测试。但是,如果那不可能,那么我愿意接受替代方案。
这是我的测试代码,引发错误
@Test
public void testNativeClass() throws Exception
{
MyNativeJavaClass test = new MyNativeJavaClass("lalalal")
List<String> results = test.getResultsFromNativeMethodAndPutThemInArrayList();
assertEquals("There should be only three result", 3, results.size());
}
我发现没有黑客的唯一解决方案是通过工具测试(androidTest目录)使用JUnit。现在可以在Android设备或仿真器的帮助下很好地测试我的班级。
我试图讨论下面SonarQube通过代码覆盖的if条件。SonarQube说2个条件中的1个都被覆盖了。如果有人能帮我把这两件事都盖上,我将不胜感激。 我已经声明了变量,并拥有了setter和getter。 下面是我要介绍的代码: 下面是测试2个条件中的1个条件的代码:
我有以下分布 主要的jar包含main方法,我想在其中访问lib提供的本机函数。所以被捆绑在发行版中。开始sh只需设置java的类路径和引导。 加载库的最佳方法是什么。那么应用程序内部的库呢?我知道两种方法: 系统。加载(绝对路径) 系统。loadLibrary(名称) 前者需要库在文件系统中的绝对路径,后者需要设置特定于应用程序的java。图书馆路径JVM参数。在这种情况下,哪种解决方案更好?将
问题内容: 为了“有趣”,我将一些Java类轻松地移植到PHP(例如),因此我希望能够运行/移植这些单元测试: 在哪里可以找到它们?任何最新版本的测试都将有所帮助。 问题答案: OpenJDK项目在线提供其源代码。例如,可以在http://hg.openjdk.java.net/jdk7u/jdk7u2/jdk/file/58ad18490a50/test/java/lang/StringBuil
问题内容: 我希望在编写用于测试某些数据库条目的单元测试中获得一些建议。 如果找不到记录,则我正在测试的功能会将数据库作为种子。 我似乎不太了解如何进行len测试。我正在使用测试数据库,因此我可以在任何时候都对其进行核对,因此,如果我只需要在函数上强制使用一个空的数据库,就没有问题了。 该函数本身可以正常工作,我只想确保已覆盖该函数。 任何建议都很好。 谢谢! 问题答案: 确实取决于您,有很多方法
问题内容: 多年来,我从事的几乎所有产品都涉及到一定程度的Shell脚本(或Windows上的批处理文件,PowerShell等)。即使我们使用Java或C ++编写了大量代码,但似乎总是存在一些集成或安装任务,而这些任务或任务可以通过Shell脚本更好地完成。 因此,shell脚本成为附带代码的一部分,因此需要像已编译的代码一样进行测试。有没有人对其中的一些shell脚本单元测试框架有经验,例如