单元测试 Interface Builder 和 Storyboard 开发

Posted

技术标签:

【中文标题】单元测试 Interface Builder 和 Storyboard 开发【英文标题】:Unit testing Interface Builder and Storyboard development 【发布时间】:2014-11-30 19:11:01 【问题描述】:

这种单元测试有意义吗?

func testPreferencesTabViewControllerNotNil() 
    var sb = NSStoryboard(name: "Main", bundle: nil)
    var window = sb?.instantiateControllerWithIdentifier("pref") as NSWindowController

    var tabs = window.window?.contentViewController as NSTabViewController
    XCTAssertNotNil(tabs, "Preferences window NSTabViewController must not be nil.")



func testPreferencesTabViewStyleIsToolBar() 
    var sb = NSStoryboard(name: "Main", bundle: nil)
    var window = sb?.instantiateControllerWithIdentifier("pref") as NSWindowController

    var tabs = window.window?.contentViewController as NSTabViewController
    XCTAssert(tabs.tabStyle == NSTabViewControllerTabStyle.Toolbar, "Preferences window NSTabViewController tab style must be Toolbar.")


func testFirstPreferencesTabViewIsGeneral() 
    var sb = NSStoryboard(name: "Main", bundle: nil)
    var window = sb?.instantiateControllerWithIdentifier("pref") as NSWindowController
    var tvc = window.window?.contentViewController as NSTabViewController
    var tvi = tvc.tabViewItems[0] as NSTabViewItem

    XCTAssert(tvi.viewController? is GeneralPreferencesViewController, "First Preferences Tab must be General Preferences")
    XCTAssert(tvi.label == "General" , "First Preferences Tab must have title ")


这主要是在测试 Interface Builder 配置,所以,我们是否应该假设一切都已正确配置?

【问题讨论】:

【参考方案1】:

在我看来,这看起来像是您正在尝试验证和测试您的用户界面。我认为更好的方法是使用UIAutomation instrument。另外,我强烈建议使用the brilliant tuneup_js library。

【讨论】:

以上是关于单元测试 Interface Builder 和 Storyboard 开发的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Interface Builder 和 xcode 中将表格和单元格背景更改为自定义图像?

iOS Update Interface Builder视图框架基于约束

在 Interface Builder 中创建的 Table View Controller 的底部单元格在 iPhone X 上被剪裁和隐藏

我在 Interface Builder 上看不到所有静态单元格

使用 Interface Builder 编辑 UITableViewCell 的模式

UITableViews 是不是在 Interface Builder 中使用“静态单元”选项通过代码修改? [复制]