使用ObjectBox进行单元测试

时间:2017-10-25 13:15:56

标签: android objectbox

我刚开始在我的Android应用中使用ObjectBox,我有一个简单的问题。这个项目依赖于Clean Architecture,我有一个存储库类,它通过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.UnsatisfiedLinkError:java.library.path 中没有对象框。我不认为在每台开发者机器上本地安装ObjectBox都是一个不错的选择。

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

1 个答案:

答案 0 :(得分:3)

您可以将ObjectBox用于本地运行的单元测试(Windows,Linux,macOS)。

检查example repository

相关问题