ios – 单元测试Swift-cast视图控制器从故事板不工作

前端之家收集整理的这篇文章主要介绍了ios – 单元测试Swift-cast视图控制器从故事板不工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我写了下面的测试案例,它在1.1版本中工作正常.但在1.2它的破裂.
class AboutViewController_Tests: XCTestCase
{
//var storyboard: UIStoryboard = UIStoryboard(name: "Main",bundle: NSBundle(forClass: self.dynamicType)) // Used in swift 1.1

var storyboard: UIStoryboard = UIStoryboard(name: "Main",bundle:NSBundle.mainBundle()) // Replaced this in swift 1.2
var aboutViewController:AboutViewController!

override func setUp()
{
super.setUp()
aboutViewController = storyboard.instantiateViewControllerWithIdentifier("AboutViewController") as! AboutViewController
aboutViewController.viewDidLoad()
XCTAssertNotNil(aboutViewController,"About not nil")
}
}

运行单元测试时出错

无法将“testProject.AboutViewController”(0x105b0ad30)类型的值转换为“testProjectTests.AboutViewController”(0x116e51d20).

我已经做了足够的研究来解决这个问题.但是无法做到这一点.我希望你们中的一些遇到这个问题,并能帮助我.

解决方法

我有同样的问题,解决办法是:

>添加故事板Main和AboutViewController在测试目标
>替换UIStoryboard(名称:“Main”,bundle:NSBundle.mainBundle())
UIStoryboard(名称:“Main”,bundle:NSBundle(forClass:self.classForCoder))

这样你就可以加载故事板并从测试目标包中初始化控制器,而不是从主目标包中使用它.
Check this link for details

猜你在找的iOS相关文章