运行 单元测试时领域模型不存储数据
Realm model stores no data while running unittests
我正在尝试使用 iOS 8.x 和 Xcode 6.4 测试我的 Swift 1.2 应用程序。我的测试中使用了 Quick/Nimble。
现在我的领域模型有问题:我的测试 总是 失败,无论我尝试向其中插入什么 - 里面没有数据。
我从内存领域开始(没有成功),后来切换到磁盘领域,但同样没有成功。
我用领域浏览器检查了磁盘上的领域,但是领域 table 没有任何记录。模拟器在 tmp
或 documents dir
.
中也有相应的领域文件
我的测试是这样的:
import Quick
import Nimble
import RealmSwift
import MyDemoApp
class TestBuilder: QuickSpec {
override func spec() {
var realm: Realm!
describe("") {
beforeEach {
realm = Realm(inMemoryIdentifier: "test")
}
it("something ") {
let builder = SummaryBuilder(realm: realm)
builder.build()
expect(realm.objects(StatSummary).count).toEventually(equal(1)) // This test fails. The realm has 0 objects.
}
}
}
}
我想测试的结构是这个:
import Foundation
import RealmSwift
public struct SummaryBuilder {
private var realm: Realm!
public init(realm: Realm = Realm()) {
self.realm = realm
}
public func build() -> Void {
realm.write {
let summary = StatSummary()
}
}
}
从 write
闭包切换到隐式事务 (beginTransaction()
/ commitTransaction()
) 没有成功。
Realm 和 Quick/Nimble 使用 Cocoapods 集成。播客文件是:
use_frameworks!
pod 'RealmSwift'
def testing_pods
use_frameworks!
pod 'Quick', '~> 0.3.0'
pod 'Nimble', '~> 1.0.0'
end
target 'MyDemoAppTest' do
testing_pods
end
您似乎根本没有将 StatSummary 对象添加 到 Realm。您应该 添加 任何要存储到 Realm 数据库的对象。喜欢以下内容:
realm.write {
let summary = StatSummary()
realm.add(summary) // You should add object to realm
}
另请参阅文档的写入部分。 https://realm.io/docs/swift/latest/#adding-objects
我正在尝试使用 iOS 8.x 和 Xcode 6.4 测试我的 Swift 1.2 应用程序。我的测试中使用了 Quick/Nimble。 现在我的领域模型有问题:我的测试 总是 失败,无论我尝试向其中插入什么 - 里面没有数据。
我从内存领域开始(没有成功),后来切换到磁盘领域,但同样没有成功。
我用领域浏览器检查了磁盘上的领域,但是领域 table 没有任何记录。模拟器在 tmp
或 documents dir
.
我的测试是这样的:
import Quick
import Nimble
import RealmSwift
import MyDemoApp
class TestBuilder: QuickSpec {
override func spec() {
var realm: Realm!
describe("") {
beforeEach {
realm = Realm(inMemoryIdentifier: "test")
}
it("something ") {
let builder = SummaryBuilder(realm: realm)
builder.build()
expect(realm.objects(StatSummary).count).toEventually(equal(1)) // This test fails. The realm has 0 objects.
}
}
}
}
我想测试的结构是这个:
import Foundation
import RealmSwift
public struct SummaryBuilder {
private var realm: Realm!
public init(realm: Realm = Realm()) {
self.realm = realm
}
public func build() -> Void {
realm.write {
let summary = StatSummary()
}
}
}
从 write
闭包切换到隐式事务 (beginTransaction()
/ commitTransaction()
) 没有成功。
Realm 和 Quick/Nimble 使用 Cocoapods 集成。播客文件是:
use_frameworks!
pod 'RealmSwift'
def testing_pods
use_frameworks!
pod 'Quick', '~> 0.3.0'
pod 'Nimble', '~> 1.0.0'
end
target 'MyDemoAppTest' do
testing_pods
end
您似乎根本没有将 StatSummary 对象添加 到 Realm。您应该 添加 任何要存储到 Realm 数据库的对象。喜欢以下内容:
realm.write {
let summary = StatSummary()
realm.add(summary) // You should add object to realm
}
另请参阅文档的写入部分。 https://realm.io/docs/swift/latest/#adding-objects