getting test-y test-driven development & automated deployment for ios
TRANSCRIPT
![Page 1: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/1.jpg)
Getting “Test”-yTest-driven Development & Automated
Deployment for iOS
![Page 2: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/2.jpg)
Your Humble Speakers
•Jonah Williams - @Zalambar
•Rudy Jahchan - @rudy
![Page 3: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/3.jpg)
How do we test?
![Page 4: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/4.jpg)
How do we test?
SenTestingKit
GTM
Cedar
KiwiKIF
GHUnitOCMock
OCHamcrest
Frank
iCuke
![Page 5: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/5.jpg)
Why do we test?
![Page 6: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/6.jpg)
Why do we test?
To make sure our code works(duh!)
![Page 7: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/7.jpg)
Why do we test FIRST?
![Page 8: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/8.jpg)
Why do we test FIRST?
To design our code.(duh!)
![Page 9: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/9.jpg)
Why do we test FIRST?
![Page 10: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/10.jpg)
Test Structure
GIVEN
WHEN
THEN
certain conditions
something happens
the conditions change (or don’t)
![Page 11: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/11.jpg)
Unit Testing
![Page 12: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/12.jpg)
Unit Testing
![Page 13: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/13.jpg)
Sample Class
![Page 14: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/14.jpg)
xUnit Style
![Page 15: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/15.jpg)
SenTestingKit
![Page 17: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/17.jpg)
Stubbing & Mocking
![Page 21: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/21.jpg)
BDD
![Page 22: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/22.jpg)
BDD
Behavior Driven Design
![Page 24: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/24.jpg)
RSpec Book
![Page 27: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/27.jpg)
Integration Tests
![Page 35: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/35.jpg)
Continuous Integration
![Page 36: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/36.jpg)
Command-Line Builds
![Page 37: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/37.jpg)
Command-Line Execution
![Page 38: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/38.jpg)
Bash
http://gist.github.com/949831
➜ ~ ./build.sh...**** Describe WorkspaceAvailable schemesInformation about workspace "My_App": Schemes: Ad Hoc Development**** Set EnvironmentMy_App/My_App/staging-Info.plist -> ~/TeamCity/build-agent-1/work/My_App_staging/My_App/My_App/My_App-Info.plistMy_App/My_App/staging.plist -> My_App/My_App/environment.plistEnvironment set to com.MyCompany.My_App.staging at version 1.0**** Increment Bundle VersionSetting version of project My_App to: 24....**** BuildRunning xcodebuild > xcodebuild_output ......Retrieving build products......**** Package ApplicationCodesign as "iPhone Distribution: MyCompany, LLC", embedding provisioning profile ~/TeamCity/build-agent-1/work/My_App_staging/ad_hoc/My_App_Staging_Ad_Hoc.mobileprovision**** Verify...**** Prepare OTA DistributionGenerating com.MyCompany.My_App.staging.app.plist**** Complete!
![Page 40: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/40.jpg)
Over The Air Distribution
![Page 41: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/41.jpg)
OTA: Roll Your Own<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key><string>software-package</string> <key>url</key><string>$artifacts_url/$project_app.ipa</string> </dict> <dict> <key>kind</key><string>full-size-image</string> <key>needs-shine</key><true/> <key>url</key><string>$artifacts_url/$full_size_image_name</string> </dict> <dict> <key>kind</key><string>display-image</string> <key>needs-shine</key><true/> <key>url</key><string>$artifacts_url/$display_image_name</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>$bundle_identifier</string> <key>bundle-version</key><string>$short_version_string $build_number</string> <key>kind</key><string>software</string> <key>subtitle</key><string>$environment_name</string> <key>title</key><string>$project_app</string> </dict> </dict> </array></dict></plist>
itms-services://?action=download-manifest&url=http://host.example/project_name.acceptance.app.plist
![Page 42: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/42.jpg)
OTA: TestFlight
http://testflightapp.com/
![Page 43: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/43.jpg)
What’s Missing?
![Page 44: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/44.jpg)
Factories
![Page 45: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/45.jpg)
Factories
![Page 46: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/46.jpg)
Fixtures
![Page 47: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/47.jpg)
CoreData Migrations
![Page 48: Getting Test-y Test-driven Development & Automated Deployment for iOS](https://reader038.vdocuments.net/reader038/viewer/2022103111/5513d7425503463a298b540d/html5/thumbnails/48.jpg)
Auto-testingguard integration
https://github.com/guard/guard