我看过这里的帖子How to unit test Realm migrations,我正在尝试实施他们所说的内容如下:
存储旧的.realm
文件,并为迁移之前/之后编写测试。
我的单元测试包中有v0.realm
文件,我正在创建它的副本。问题是,在我最近的迁移中,我从我的应用程序中删除了一个Type,从而从Realm中删除了一个Type,我想测试它已不再存在。
当我设置我的领域配置时,我应该可以应用一些objectTypes
,但是该类不再在我的应用程序中,我不确定如何检查它。
这是我当前的测试设置,我试图测试我的对象存在于Realm v0中。请注意,这是我第一次使用Realm进行迁移,这是我第一次使用Realm。
let realmV0 = loadRealmFromResource(withName: "realm-v0")
// Test that MyEntity exists
// How can I specify my objectTypes without having access to MyEntity.self
// since it no longer exists in my project?
let configuration = Realm.Configuration(fileURL: realmV0, deleteRealmIfMigrationNeeded: true, objectTypes: objectTypes)
let realm = try! Realm(configuration: configuration)
let results = realm.dynamicObjects("MyEntity")
XCTAssert(results.count > 0)
答案 0 :(得分:1)
我无法确定在没有类的情况下访问实体的方法,因此我决定将文件保留在我的项目中,以便通过单元测试确保迁移正常。
虽然迁移不需要该类,因为我可以使用字符串中的类名删除实体,但我觉得在项目中留下一个小文件比希望迁移正常工作更安全。