对于iOS开发和敏捷我还是比较陌生。为了弄湿我,我正在尝试添加一些简单的Snapshot测试。
测试本身真的很简单(更复杂的是只是为视图控制器模拟数据),只需要从情节提要中为我关心快照的视图创建一个View控制器实例即可。
func testJobAlertsSignupWidget(){
let storyboard = UIStoryboard(name: "SearchOverlayViewController", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier:"SearchOverlayViewController") as! SearchOverlayViewController
FBSnapshotVerifyView(viewController.view)
}
但是我在执行强制转换Signal SIGABRT
的那一行一直在发生as! SearchOverlayViewController
异常。此外,我在应用程序日志中看到了这一点。
Could not cast value of type 'MyApp.SearchOverlayViewController' (0x108655258) to 'MyApp.SearchOverlayViewController' (0x12d4a8058).
这一行使我感到困惑。令人困惑的是,两个引用对类型MyApp.SearchOverlayViewController
的地址都不同。如果删除强制类型转换并使用调试器,则可以看到viewController是预期的类型。但是,投射始终失败。
我的项目建设不当,是因为某些东西被错误链接或双重链接了吗?我删除了DerivedData并进行了几次清理/构建,但无济于事。
我发现的唯一接近的东西是几年前的tweet,但是在那个地方,两个对象的地址都相同。