简体   繁体   English

单元测试Interface Builder和Storyboard开发

[英]Unit testing Interface Builder and Storyboard development

Does this kind of unit testing makes sense? 这种单元测试有意义吗?

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 ")

}

This is testing mostly Interface Builder configurations, so, should we make the supposition that everything is properly configured? 这主要是测试Interface Builder的配置,因此,我们是否应该假设一切都已正确配置?

To me this looks like you are trying to validate and test your user interface. 对我来说,这似乎是您在尝试验证和测试您的用户界面。 I think the better way for this is to use UIAutomation instrument . 我认为更好的方法是使用UIAutomation工具 Also, I highly recommend using the brilliant tuneup_js library with it. 另外,我强烈建议将tuneup_js库一起使用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM