SlideShare a Scribd company logo
1 of 17
Download to read offline
409 - TESTING IN XCODE
Gavin Thomas
ippoippo-software@ippoippo-eco.com
@IppoippoSftware
www.ippoippo-software.com

Sunday, 20 October 13
WHO AM I?
• Previously

an Enterprise Java developer for 15 years for
my day job

• Now

work as Ruby developer for my day job

• Mac

user since 2006, iOS devices since 2008.

• Dabbled

with Obj-C since 2008, but started investing
more time from start of this year.

Sunday, 20 October 13
WHY?

Sunday, 20 October 13
WHY?
G nd
IN a
RN tion
A a
W lis
es
a otyp
er re
en te
G
S

Sunday, 20 October 13
WHY?

Sunday, 20 October 13
WHY?
•

The Ruby development world has a strong testing ethos, typically ‘spec’ (or human
readable) orientated. Leads the way, but sometimes tooling is fragile.

•

Enterprise Java development world was slower to catch on, but JUnit is used heavily now.
However, the tooling is solid.

•

Despite xUnit coming from Smalltalk, historically Unit Testing was never big in ‘old’
Objective-C world.

•

New generation of Obj-C devs are driving Unit Testing with 3rd party tools (Kiwi, Expecta,
OCMock, OCMockito, Specta)

Sunday, 20 October 13
WHAT’S THE MAIN TOPIC IN THE
VIDEO?
• Unit

Testing basics (why and what) 04:14 to 07:15

• New

Frameworks and Tools (XCTest and XCode
updates) 07:15 to 33:20

• Continuous

Sunday, 20 October 13

Integration 33:20 to 45:00
WHAT KIND OF VALUE FROM
WATCHING IT?
• New

Objective-C developers who have not experienced
Unit Testing elsewhere get an overview of the ‘why’?

• Understand

that Apple is adopting ‘best practice’ as
used elsewhere in the industry.

• For

experienced ‘unit testers’, understand what
improvements Apple has added to tools (and to
understand what is still missing)

Sunday, 20 October 13
MOST INTERESTING POINTS?

• 1:18

- “Why Test?” According to Apple

• Catch

‘crashers’ - No1 reason why apps are rejected.

• Helps

development in teams

Sunday, 20 October 13
MOST INTERESTING POINTS?

• 7:09

- “Where to start
testing”

• Using

out of the box XCode
tools, Models and Controllers
are ‘easier’ to test.

Sunday, 20 October 13
MOST INTERESTING POINTS?

• 10:25
• For

- Test Navigator

previous IntelliJ,
RubyMine, Eclipse etc
users... IDE tools

Sunday, 20 October 13
MOST INTERESTING POINTS?
• 20:00

- Checklist for what
you should test for

• For

people experience in
Unit Testing in other
languages, but new to
Objective-C...

• The

failures to check for list
is very useful as Objective-C
specific

Sunday, 20 October 13
MOST INTERESTING POINTS?
• 21:22

- setUp

• ‘shim’

==> Ohh, you mean a
mock object!

• So,

XCTest comes with
Mocking support, No?
Dammit!

• We

rely on 3rd-parties still,
like OCMock, or OCMockito
(or Kiwi)

Sunday, 20 October 13
MOST INTERESTING POINTS?

• 23:35
• If

- iOS6

you want to support iOS6,
you need to use the older
OCTest still!

Sunday, 20 October 13
MOST INTERESTING POINTS?
• 33:20

- CI with an Apple
flavour

• Relies

on OS X Server, rather
than support for existing tools
(like Jenkins etc).

• Allows

testing of software on

•

Multiple connected iOS Devices

•

Multiple iOS Sims

•

Multiple iOS Versions

Sunday, 20 October 13

Failing on iPad mini iOS6,
working on iPhone iOS7
MOST INTERESTING POINTS?
• 46:42

- Already have CI
(example, company doing
non Obj-C work as well as
iOS Apps)?

• Use

the command line tools,
and integrate that way rather
than rely on OS X Server

Sunday, 20 October 13
OTHER RESOURCES
• http://iosunittesting.com
• http://qualitycoding.org
• http://pragprog.com/magazines/2012-10/its-not-about-

the-unit-tests
•

“iOS developers generally don’t unit test. So why then do they as a community seem to
enjoy a reputation for quality? No unit tests. No continuous integration. No TDD.”

•

An out of date quote now? Unit Testing does not guarantee quality. However, it’s a tool
that helps you get there if you are already in the right ‘quality’ mindset.

Sunday, 20 October 13

More Related Content

Similar to Tokyo iOS Meetup - 409 - Testing In XCode

AOTB2014: Agile Testing on the Java Platform
AOTB2014: Agile Testing on the Java PlatformAOTB2014: Agile Testing on the Java Platform
AOTB2014: Agile Testing on the Java PlatformPeter Pilgrim
 
Inland Empire JUG Presentation 12/11
Inland Empire JUG Presentation 12/11Inland Empire JUG Presentation 12/11
Inland Empire JUG Presentation 12/11Michael Kennedy
 
From Renamer Plugin to Polyglot IDE
From Renamer Plugin to Polyglot IDEFrom Renamer Plugin to Polyglot IDE
From Renamer Plugin to Polyglot IDEintelliyole
 
Hello YellowJS
Hello YellowJSHello YellowJS
Hello YellowJSYellowJS
 
Counterclockwise past present future
Counterclockwise  past present futureCounterclockwise  past present future
Counterclockwise past present futurelolopetit
 
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Murat Yener
 
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopHadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopWisely chen
 
PhoneGap in 60 Minutes or Less
PhoneGap in 60 Minutes or LessPhoneGap in 60 Minutes or Less
PhoneGap in 60 Minutes or LessTroy Miles
 
Thucydides - a brief review
Thucydides - a brief reviewThucydides - a brief review
Thucydides - a brief reviewCristian COȚOI
 
(final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and Ruby Pro...
(final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyPro...(final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyPro...
(final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and Ruby Pro...宏治 高尾
 
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF SessionJavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF SessionDaniel Bryant
 
Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptTroy Miles
 
Challenges of moving a java team to scala
Challenges of moving a java team to scalaChallenges of moving a java team to scala
Challenges of moving a java team to scalaJoão Cavalheiro
 
Understand Java for Android the Hard Way
Understand Java for Android the Hard WayUnderstand Java for Android the Hard Way
Understand Java for Android the Hard WayGlobalLogic Ukraine
 
Don't fear our new robot overlords – A new way to test on mobile
Don't fear our new robot overlords – A new way to test on mobileDon't fear our new robot overlords – A new way to test on mobile
Don't fear our new robot overlords – A new way to test on mobilePhilip Brechler
 
The Cowardly Test-o-Phobe's Guide To Testing
The Cowardly Test-o-Phobe's Guide To TestingThe Cowardly Test-o-Phobe's Guide To Testing
The Cowardly Test-o-Phobe's Guide To TestingTim Duckett
 

Similar to Tokyo iOS Meetup - 409 - Testing In XCode (20)

Spock testing
Spock testingSpock testing
Spock testing
 
AOTB2014: Agile Testing on the Java Platform
AOTB2014: Agile Testing on the Java PlatformAOTB2014: Agile Testing on the Java Platform
AOTB2014: Agile Testing on the Java Platform
 
Inland Empire JUG Presentation 12/11
Inland Empire JUG Presentation 12/11Inland Empire JUG Presentation 12/11
Inland Empire JUG Presentation 12/11
 
From Renamer Plugin to Polyglot IDE
From Renamer Plugin to Polyglot IDEFrom Renamer Plugin to Polyglot IDE
From Renamer Plugin to Polyglot IDE
 
Hello YellowJS
Hello YellowJSHello YellowJS
Hello YellowJS
 
Counterclockwise past present future
Counterclockwise  past present futureCounterclockwise  past present future
Counterclockwise past present future
 
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
 
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopHadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoop
 
PhoneGap in 60 Minutes or Less
PhoneGap in 60 Minutes or LessPhoneGap in 60 Minutes or Less
PhoneGap in 60 Minutes or Less
 
Thucydides - a brief review
Thucydides - a brief reviewThucydides - a brief review
Thucydides - a brief review
 
(final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and Ruby Pro...
(final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyPro...(final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyPro...
(final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and Ruby Pro...
 
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF SessionJavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session
 
Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScript
 
Challenges of moving a java team to scala
Challenges of moving a java team to scalaChallenges of moving a java team to scala
Challenges of moving a java team to scala
 
20170613 tech easy
20170613 tech easy20170613 tech easy
20170613 tech easy
 
Understand Java for Android the Hard Way
Understand Java for Android the Hard WayUnderstand Java for Android the Hard Way
Understand Java for Android the Hard Way
 
Don't fear our new robot overlords – A new way to test on mobile
Don't fear our new robot overlords – A new way to test on mobileDon't fear our new robot overlords – A new way to test on mobile
Don't fear our new robot overlords – A new way to test on mobile
 
Intro to kotlin
Intro to kotlinIntro to kotlin
Intro to kotlin
 
The Cowardly Test-o-Phobe's Guide To Testing
The Cowardly Test-o-Phobe's Guide To TestingThe Cowardly Test-o-Phobe's Guide To Testing
The Cowardly Test-o-Phobe's Guide To Testing
 
History of Java 2/2
History of Java 2/2History of Java 2/2
History of Java 2/2
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Tokyo iOS Meetup - 409 - Testing In XCode

  • 1. 409 - TESTING IN XCODE Gavin Thomas ippoippo-software@ippoippo-eco.com @IppoippoSftware www.ippoippo-software.com Sunday, 20 October 13
  • 2. WHO AM I? • Previously an Enterprise Java developer for 15 years for my day job • Now work as Ruby developer for my day job • Mac user since 2006, iOS devices since 2008. • Dabbled with Obj-C since 2008, but started investing more time from start of this year. Sunday, 20 October 13
  • 4. WHY? G nd IN a RN tion A a W lis es a otyp er re en te G S Sunday, 20 October 13
  • 6. WHY? • The Ruby development world has a strong testing ethos, typically ‘spec’ (or human readable) orientated. Leads the way, but sometimes tooling is fragile. • Enterprise Java development world was slower to catch on, but JUnit is used heavily now. However, the tooling is solid. • Despite xUnit coming from Smalltalk, historically Unit Testing was never big in ‘old’ Objective-C world. • New generation of Obj-C devs are driving Unit Testing with 3rd party tools (Kiwi, Expecta, OCMock, OCMockito, Specta) Sunday, 20 October 13
  • 7. WHAT’S THE MAIN TOPIC IN THE VIDEO? • Unit Testing basics (why and what) 04:14 to 07:15 • New Frameworks and Tools (XCTest and XCode updates) 07:15 to 33:20 • Continuous Sunday, 20 October 13 Integration 33:20 to 45:00
  • 8. WHAT KIND OF VALUE FROM WATCHING IT? • New Objective-C developers who have not experienced Unit Testing elsewhere get an overview of the ‘why’? • Understand that Apple is adopting ‘best practice’ as used elsewhere in the industry. • For experienced ‘unit testers’, understand what improvements Apple has added to tools (and to understand what is still missing) Sunday, 20 October 13
  • 9. MOST INTERESTING POINTS? • 1:18 - “Why Test?” According to Apple • Catch ‘crashers’ - No1 reason why apps are rejected. • Helps development in teams Sunday, 20 October 13
  • 10. MOST INTERESTING POINTS? • 7:09 - “Where to start testing” • Using out of the box XCode tools, Models and Controllers are ‘easier’ to test. Sunday, 20 October 13
  • 11. MOST INTERESTING POINTS? • 10:25 • For - Test Navigator previous IntelliJ, RubyMine, Eclipse etc users... IDE tools Sunday, 20 October 13
  • 12. MOST INTERESTING POINTS? • 20:00 - Checklist for what you should test for • For people experience in Unit Testing in other languages, but new to Objective-C... • The failures to check for list is very useful as Objective-C specific Sunday, 20 October 13
  • 13. MOST INTERESTING POINTS? • 21:22 - setUp • ‘shim’ ==> Ohh, you mean a mock object! • So, XCTest comes with Mocking support, No? Dammit! • We rely on 3rd-parties still, like OCMock, or OCMockito (or Kiwi) Sunday, 20 October 13
  • 14. MOST INTERESTING POINTS? • 23:35 • If - iOS6 you want to support iOS6, you need to use the older OCTest still! Sunday, 20 October 13
  • 15. MOST INTERESTING POINTS? • 33:20 - CI with an Apple flavour • Relies on OS X Server, rather than support for existing tools (like Jenkins etc). • Allows testing of software on • Multiple connected iOS Devices • Multiple iOS Sims • Multiple iOS Versions Sunday, 20 October 13 Failing on iPad mini iOS6, working on iPhone iOS7
  • 16. MOST INTERESTING POINTS? • 46:42 - Already have CI (example, company doing non Obj-C work as well as iOS Apps)? • Use the command line tools, and integrate that way rather than rely on OS X Server Sunday, 20 October 13
  • 17. OTHER RESOURCES • http://iosunittesting.com • http://qualitycoding.org • http://pragprog.com/magazines/2012-10/its-not-about- the-unit-tests • “iOS developers generally don’t unit test. So why then do they as a community seem to enjoy a reputation for quality? No unit tests. No continuous integration. No TDD.” • An out of date quote now? Unit Testing does not guarantee quality. However, it’s a tool that helps you get there if you are already in the right ‘quality’ mindset. Sunday, 20 October 13