我们正在尝试为我们的视图控制器设置测试,并且我们已经使用一些更简单的视图控制器成功完成了测试。但我们刚刚开始使用一个更复杂的视图控制器获得EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
。我们的测试看起来像这样:
class GEKMasterViewControllerTest: XCTestCase {
var viewController: GEKMasterViewController!
override func setUp() {
super.setUp()
viewController = GEKMasterViewController()
let _ = viewController.view
}
}
在实际的视图控制器中,它始终在此行上失败:
override public func viewDidLoad() {
super.viewDidLoad()
// Set the main view height
mainViewHeight = self.view.frame.height - 64.0 // EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
所有类都设置为public
,并且在测试文件中正确导入了应用目标。当您对此行进行注释时,它会继续点击视图控制器中的其他几行并失败。似乎有一个更严重的问题,我们的测试设置导致这种行为的方式,但所有(稀缺)Swift测试资源显示类似的用法。在Swift测试目标中尝试访问视图控制器的view属性时,是否有一个共同的原因我们会看到EXC_BAD_INSTRUCTION
?