2014 年 2 月 1 日
关注 @orta应该避免重复自己。纽约市是我们去年开始举办Cocoa Kuchas的地方,虽然这里还有很多故事可以讲,但现在是继续前进的时候了。
这个月,我们将举办一个关于 iOS 测试的小组讨论。在里面了解更多信息。
Komittee 是一个活动,我们将邀请一些有强烈意见的人,让他们开始讨论一个有争议的话题,看看我们是否能从这个过程中学到一些东西。测试通常是一个热门话题。将它与一个紧密的平台、封闭的工具结合起来,你就会得到很多火焰。
详情
我们很荣幸地得到 Spotify 在其纽约市总部的热情款待,活动时间为 2 月 25 日晚上 7 点。
主题
- QA 与自动化单元测试
- 测试代码单元与测试行为
- Obj-C 实现策略与其他生态系统
- 时间管理
- 为每个人改进测试的方法
小组讨论
- db - @dblockdotorg
- Benjamin Jackson - @benjaminjackson
- Mike Lazer-Walker - @lazerwalker
- Klaas Pieter - @klaaspieter
- Paul Young - @py
- Brian Gerstle - @b_gerstle
- Landon J Fuller - @landonfuller
聚会页面
展示说明
Landon Fuller
-
单元测试
OCUnit 用于支持 iOS 6 及更低版本和 Mac OS X 10.7 及更低版本的项目
XCTest 用于支持 iOS 7 及更高版本和 Mac OS X 10.8 及更高版本的项目
-
持续集成
Jenkins:http://jenkins-ci.org/
Confluence:https://www.atlassian.com/software/bamboo/
Paul Young
-
框架
Specta
Expecta - https://github.com/specta/expecta
-
OCMockito - https://github.com/jonreid/OCMockito
我曾经使用 OCMock,但遇到了麻烦,因为
它通过引发异常来报告测试失败(不够有用,输出奇怪,无法点击并转到测试失败)。Klaas 在他链接的文章中提到了这一点。
当你调用 `stopMocking` 时,不会清除期望,这意味着你无法使用设置步骤/beforeEach 块来使你的规范保持 DRY。“部分”模拟允许我模拟受测对象的一部分,这似乎是错误的。OCMockito 不允许这样做。
-
工具
Rake - 类似于 AFNetworking https://github.com/AFNetworking/AFNetworking/blob/master/Rakefile
XCTool - 尽管目前存在问题:https://github.com/facebook/xctool/issues/314
Travis - 按照这篇文章:http://www.objc.io/issue-6/travis-ci.html,但有一些需要注意的地方
Travis 开发人员忘记将 CocoaPods 添加到 VM,因此你必须在 before_script 阶段安装 gem。它可以工作,但会使构建花费更长时间。你可以通过不安装 gem 的文档来加快速度。https://github.com/travis-ci/travis-ci/issues/1657
Travis 开发人员忘记设置一些环境变量:https://github.com/travis-ci/travis-ci/issues/1769
Hockey - http://hockeyapp.net/features/ - 这些应用相当不错:http://hockeyapp.net/apps/
我按照 objc.io 文章在构建在 master 中成功后从 Travis 推送到 Hockey。考虑看看 Matt Thompson 的 Shenzhen(https://github.com/nomad/shenzhen)是否是一个更好的长期解决方案。
Klaas Pieter Annema
我使用 Specta、Expecta 和 OCMockito。我还一直在使用 Barista 进行集成测试。所有内容都在 Travis 上自动运行。我使用的工具:Cocoapods、Bundler(因此我每个项目都可以有特定的 Cocoapoads 版本)、Rake 和 xctool。