单元测试 – 嘲笑Swift
你如何在Swift中模拟一个对象?
镜像协议听起来有希望,但它现在做的不多。 到目前为止,我发现的唯一的办法是子类和覆盖所有的模拟类的方法。这当然不是一个真正的模拟,远离理想,很多工作。 任何其他想法? 为什么不是OCMock? 从source:
已知限制: >测试必须用Objective-C编写
NSHipster触及Swift中的语言特性,这使得外部模拟库不那么必要:
func testFetchRequestWithMockedManagedObjectContext() { class MockNSManagedObjectContext: NSManagedObjectContext { override func executeFetchRequest(request: NSFetchRequest!,error: AutoreleasingUnsafePointer<NSError?>) -> [AnyObject]! { return [["name": "Johnny Appleseed","email": "johnny@apple.com"]] } } ... } 在本地范围中创建一个外部依赖的子类的能力加上XCTestExpectation解决了很多与OCMock相同的问题。 OCMock提供的一个非常有用的库是“verify”方法,以确保mock类被调用。可以手动添加这个,但自动添加是很好的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |