Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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
Android 使用ObjectBox的单元测试_Android_Objectbox - Fatal编程技术网

Android 使用ObjectBox的单元测试

Android 使用ObjectBox的单元测试,android,objectbox,Android,Objectbox,我刚开始在Android应用程序中使用ObjectBox,我有一个简单的问题。这个项目基于干净的体系结构,我有一个repository类,它通过DI(Dagger2)在其构造函数中接收一个BoxStore。与往常一样,在该构造函数中,我使用boxStore.boxFor()创建了一个Box实例 它工作得很好,但现在我需要测试这个存储库类,并且。。。我面临着一些我不知道如何解决的问题 我的第一次尝试是用Mockito模拟BoxStore,并将此模拟传递给存储库的构造函数。它抛出一个NullPoin

我刚开始在Android应用程序中使用ObjectBox,我有一个简单的问题。这个项目基于干净的体系结构,我有一个repository类,它通过DI(Dagger2)在其构造函数中接收一个BoxStore。与往常一样,在该构造函数中,我使用boxStore.boxFor()创建了一个Box实例

它工作得很好,但现在我需要测试这个存储库类,并且。。。我面临着一些我不知道如何解决的问题

我的第一次尝试是用Mockito模拟BoxStore,并将此模拟传递给存储库的构造函数。它抛出一个NullPoinerException。然后,我尝试使用以下代码创建本地BoxStore:

@Before
public void before() {
    File tempFile = null;
    try {
        tempFile = File.createTempFile("object-store-test", "");
    } catch (IOException e) {
        e.printStackTrace();
    }

    tempFile.delete();
    boxStoreDir = tempFile;
    store = MyObjectBox.builder().directory(boxStoreDir).build();
    repository = new EstadoOrgaoLocalRepository(store);
}
但是,现在我有一个错误java.lang.UnsatifiedLinkError:java.library.path中没有objectbox。我不认为在每个开发人员机器上本地安装ObjectBox是一个好的选择


因此,我的简单问题是:如何通过构造函数注入对接收BoxStore实例的存储库类进行单元测试?

您可以使用ObjectBox进行本地运行的单元测试(Windows、Linux、macOS)


检查。

否。我正在使用Mac:(我从您指出的存储库中复制了我问题中的代码。那么,还有其他选择吗?这里可以使用mock吗?任何解决方案或mac用户?这可能是一个杀手级功能-能够用一些代码覆盖DAO类,实际上开发人员更容易理解如何在不创建androi的情况下使用ObjectBox。)d应用程序。我看到了很多定制解决方案(例如,使用h2进行单元测试而不是sqlite)。目前正在尝试说服迁移到OB。我也是Mac用户,希望我们能找到一些解决方法。好消息大家,现在我们支持macOS:这里有一个示例