Android 使用ObjectBox的单元测试
我刚开始在Android应用程序中使用ObjectBox,我有一个简单的问题。这个项目基于干净的体系结构,我有一个repository类,它通过DI(Dagger2)在其构造函数中接收一个BoxStore。与往常一样,在该构造函数中,我使用boxStore.boxFor()创建了一个Box实例 它工作得很好,但现在我需要测试这个存储库类,并且。。。我面临着一些我不知道如何解决的问题 我的第一次尝试是用Mockito模拟BoxStore,并将此模拟传递给存储库的构造函数。它抛出一个NullPoinerException。然后,我尝试使用以下代码创建本地BoxStore:Android 使用ObjectBox的单元测试,android,objectbox,Android,Objectbox,我刚开始在Android应用程序中使用ObjectBox,我有一个简单的问题。这个项目基于干净的体系结构,我有一个repository类,它通过DI(Dagger2)在其构造函数中接收一个BoxStore。与往常一样,在该构造函数中,我使用boxStore.boxFor()创建了一个Box实例 它工作得很好,但现在我需要测试这个存储库类,并且。。。我面临着一些我不知道如何解决的问题 我的第一次尝试是用Mockito模拟BoxStore,并将此模拟传递给存储库的构造函数。它抛出一个NullPoin
@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.UnsatifiedLinkError:java.library.path中没有objectbox。我不认为在每个开发人员机器上本地安装ObjectBox是一个好的选择
因此,我的简单问题是:如何通过构造函数注入对接收BoxStore实例的存储库类进行单元测试?您可以使用ObjectBox进行本地运行的单元测试(Windows、Linux、macOS)
检查。否。我正在使用Mac:(我从您指出的存储库中复制了我问题中的代码。那么,还有其他选择吗?这里可以使用mock吗?任何解决方案或mac用户?这可能是一个杀手级功能-能够用一些代码覆盖DAO类,实际上开发人员更容易理解如何在不创建androi的情况下使用ObjectBox。)d应用程序。我看到了很多定制解决方案(例如,使用h2进行单元测试而不是sqlite)。目前正在尝试说服迁移到OB。我也是Mac用户,希望我们能找到一些解决方法。好消息大家,现在我们支持macOS:这里有一个示例