我曾经问过一个与XCTests有关的问题。在一个答案中,我被告知,在运行单元测试(至少在iOS开发中)时,使用单独的测试目标(主应用程序除外)是一种常见的做法。我试图找到一些有关的资料,但是我找不到
我了解,这可能是最佳做法,所以我很想了解它。有人可以向我解释为什么它很重要,我从中得到什么好处,我应该如何去做呢?指向一些解释该问题的文章的链接将不胜感激。
PS我知道我需要特殊的测试环境(虚拟内存数据库,模拟的网络层等),但是直到现在,我仍设法在没有单独的测试主机的情况下实现它。但是我相信可能会有更好的方法。
要回答您的观点:
关注点分离。单元测试目标的结构与常规应用程序目标不同,它包含一个测试包,该捆绑包引用了被测试的应用程序目标以及测试类和所需的任何帮助程序类。它不是添加了测试代码的应用程序目标的重复-实际上,它甚至不应包含正在测试的代码。这意味着您无需付出任何特别的努力即可使测试目标与主应用程序目标保持同步-测试包加载了主应用程序这一事实将为您处理所有这一切。(您对Richard Ross对先前问题的回答发表了评论,表明您已经遇到了重复原因造成的困难)。
假设您要向没有任何测试的现有项目中添加目标,请选择主项目,然后单击项目中目标列表下方的“ +”。您也可以使用“文件”->“新建”->“目标”菜单选项。您会看到一个菜单,要求您选择新目标的模板。选择“测试”,然后在测试中选择“ iOS单元测试包”。检查下一个屏幕中的字段-默认情况下它们应该正确-但如果您在项目/工作区中有很多目标,则可能要再次检查“待测试的目标”字段值是否正确。单击“确定”,您应该具有一个正常运行的单元测试包,并带有一个示例测试,您应该可以使用Apple-U或“产品”->“测试您”#import
如果您要创建一个新项目,则只需在创建项目时勾选“包括单元测试”框即可-无需其他步骤。
Apple Docs(带有相关WWDC演示文稿的链接)
教程。周围的大多数教程都有些过时。但是变化不大,因此只需查看一下文档并找出答案即可。下面的两个可能很有用,否则只是google。乍一看,大多数人似乎都认为该项目在开始时就已经设置了单元测试。
http://www.raywenderlich.com/22590/beginning-automated-testing-with-xcode-part-12(2012 / iOS 6,但过程仍然大致相同。还处理Jenkins,Git和从中运行测试CLI)。
我知道OSX中的单元测试-最近发布-不是iOS,但是比大多数iOS教程(2015年10月)更新得多,并提供了逐步说明(包括在构建方案中设置单元测试目标),在您的情况下可能没有必要)。无论如何可能值得一看。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句