我有一个Android应用程序,使用Realm来持久化数据。现在我想为这个应用程序编写一个单元测试,利用Realm进行测试。
然而,我不希望单元测试干扰我的现有Realm数据。因此,我想为我的测试实例生成不同的Realm文件。我不在意它们是否具有不同的名称或存储在不同的目录中。
我尝试使用
接下来,我尝试使用
最后,我尝试编写一个扩展
有没有人知道是否有可能在不影响实时数据的情况下测试Realm?
然而,我不希望单元测试干扰我的现有Realm数据。因此,我想为我的测试实例生成不同的Realm文件。我不在意它们是否具有不同的名称或存储在不同的目录中。
我尝试使用
RenamingDelegatingContext
,但没有成功。根据https://groups.google.com/forum/#!msg/realm-java/WyHJHLOqK2c/WJFYvglIGk0J,getInstance()
只使用Context
调用getFilesDir()
,这似乎没有覆盖getFilesDir()
方法,所以我最终使用了我的实时数据进行测试。接下来,我尝试使用
IsolatedContext
,但是IsolatedContext.getFilesDir()
返回null
,所以也没有成功。最后,我尝试编写一个扩展
RenamingDelegatingContext
的类,重写getFilesDir()
方法,返回一个不同的目录供Realm使用。我使用AndroidStudio的DeviceMonitor创建了该目录,但是当我尝试使用这个上下文时,Realm失败并显示io.realm.exceptions.RealmIOException: Failed to open . Permission denied. open() failed: Permission denied
。有没有人知道是否有可能在不影响实时数据的情况下测试Realm?