其他分享
首页 > 其他分享> > android-使用ObjectBox进行单元测试

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实例的存储库类进行单元测试?

解决方法:

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

检查example repository.

标签:objectbox,android
来源: https://codeday.me/bug/20191110/2015426.html