我为此问题创建了一个示例项目,找到here
我所拥有的是ViewController
,它是UITableViewController
的子类,我正在加载自定义单元格,名为TableViewCell
。常规构建工作很好,如果你运行它应该出现3个单元格,每个单元格都有一个标签"Cell i"
,其中i是该单元格的行。
当我尝试为此单元格创建测试时,会出现问题。在上面的项目中,我有一个测试类TableVewTestTestTests.swift
(这个名字很荒谬,我的错)嘲笑ViewController tableView
并继续正确地获取一个单元格,但是当试图验证单元格的出口时,都是nil
(包括UITableViewCell
超类出口)。这是怎么回事?
答案 0 :(得分:0)
事实证明,我在测试中注册了TableViewCell
而不是nib的类,但是当我加载nib时,我遇到了其他错误。事实证明,您需要注册自定义单元格的笔尖,但声明它的包在Test target
中。
因此,寄存器调用如下所示:
vc.tableView.registerNib(UINib(nibName: "TableViewCell", bundle: NSBundle(forClass: TableViewCell.classForCoder())), forCellReuseIdentifier: "cell")
这使得所有插座都可以在单元中工作,并且可以进行测试!