使用 ObjectBox 进行单元测试
Unit Tests with ObjectBox
我刚开始在我的 Android 应用程序中使用 ObjectBox,对此我有一个简单的问题。该项目基于 Clean Architecture,其中我有一个存储库 class,它通过 DI (Dagger2) 在其构造函数中接收一个 BoxStore。在该构造函数中,像往常一样,我使用 boxStore.boxFor().
创建了一个 Box 实例
它工作得很好,但现在我需要测试这个存储库 class 并且...我遇到了一些我不知道如何解决的问题。
我的第一个尝试是用 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 实例的存储库 classes 进行单元测试?
您可以在本地(Windows、Linux、macOS)使用 ObjectBox 进行单元测试运行。
我刚开始在我的 Android 应用程序中使用 ObjectBox,对此我有一个简单的问题。该项目基于 Clean Architecture,其中我有一个存储库 class,它通过 DI (Dagger2) 在其构造函数中接收一个 BoxStore。在该构造函数中,像往常一样,我使用 boxStore.boxFor().
创建了一个 Box 实例它工作得很好,但现在我需要测试这个存储库 class 并且...我遇到了一些我不知道如何解决的问题。
我的第一个尝试是用 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 实例的存储库 classes 进行单元测试?
您可以在本地(Windows、Linux、macOS)使用 ObjectBox 进行单元测试运行。