我刚开始在我的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.UnsatisfiedLink错误:java.library.path中没有objectbox。我不认为在每台开发人员机器中本地安装objectbox是一个好的选择。
所以,我的简单问题是:如何对通过构造函数注入接收boxstore实例的存储库类进行单元测试?

最佳答案

您可以将objectbox用于本地运行的单元测试(windows、linux、macos)。
检查example repository

07-27 17:31