Android 如何在具有本机依赖关系的robolectric中单元测试内容提供程序和DB调用

Android 如何在具有本机依赖关系的robolectric中单元测试内容提供程序和DB调用,android,sqlite,unit-testing,robolectric,android-testing,Android,Sqlite,Unit Testing,Robolectric,Android Testing,我想在我的项目中使用robolectric(3+)进行单元测试。问题是,在我们的项目中,我们使用的不是来自android.database.sqlite的sqlite依赖项,而是来自sqlite项目(org.sqlite.database)的编译源代码。这是因为为了安全起见,我们在数据库中使用基于硬件的加密。org.sqlite.database上的依赖项调用本机代码。 Robolectric不支持任何外部本机代码(将给出java.lang.UnsatifiedLinkError)。我的项目中的

我想在我的项目中使用robolectric(3+)进行单元测试。问题是,在我们的项目中,我们使用的不是来自android.database.sqlite的sqlite依赖项,而是来自sqlite项目(org.sqlite.database)的编译源代码。这是因为为了安全起见,我们在数据库中使用基于硬件的加密。org.sqlite.database上的依赖项调用本机代码。 Robolectric不支持任何外部本机代码(将给出java.lang.UnsatifiedLinkError)。我的项目中的ContentProvider和SQLite helper类引用org.SQLite.database包中的代码,用于创建表、生成查询和表联接。
现在,我可以为测试用例创建另一个内容提供者,但它可能会导致代码重复,并且不会测试实际的内容提供者。在内容提供者中,我可以将DB操作分为不同的类,但这同样是代码重复。似乎我必须将它们作为测试用例运行。如果有人有一些建议,那就太好了。

我们将这些测试作为仪器化测试运行。目前robolectric不支持任何外部本机代码,并且在尝试访问任何本机方法时出现此错误。 因此,除了在设备上运行所有与DB相关的单元测试之外,没有其他选择