gpt4 book ai didi

android - 使用 ObjectBox 进行单元测试

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:25 24 4
gpt4 key购买 nike

我刚开始在我的 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: no objectbox in java.library.path。我认为在每台开发人员机器上本地安装 ObjectBox 并不是一个好的选择。

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

最佳答案

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

检查 example repository .

关于android - 使用 ObjectBox 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46933479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com