https://github.com/oleh-zayats/awesome-unit-testing-swift
A curated collection of awesome blog articles, books, talks, podcasts, tools/frameworks and examples.
https://github.com/oleh-zayats/awesome-unit-testing-swift
List: awesome-unit-testing-swift
ios swift swift-4 swift5 tdd test-driven-development testing-framework testing-tools unit-testing
Last synced: about 2 months ago
JSON representation
A curated collection of awesome blog articles, books, talks, podcasts, tools/frameworks and examples.
- Host: GitHub
- URL: https://github.com/oleh-zayats/awesome-unit-testing-swift
- Owner: oleh-zayats
- License: mit
- Created: 2018-01-17T08:51:37.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-03-25T16:02:45.000Z (about 5 years ago)
- Last Synced: 2025-03-30T17:11:15.085Z (about 2 months ago)
- Topics: ios, swift, swift-4, swift5, tdd, test-driven-development, testing-framework, testing-tools, unit-testing
- Homepage:
- Size: 138 KB
- Stars: 424
- Watchers: 20
- Forks: 83
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- ultimate-awesome - awesome-unit-testing-swift - A curated collection of awesome blog articles, books, talks, podcasts, tools/frameworks and examples. . (Other Lists / Julia Lists)
README
# Awesome Unit Testing in Swift
A curated collection of awesome blog articles, books, talks, podcasts, tools/frameworks and examples.
## 🎤 Talks:
### Apple WWDC
[Apple WWDC 2019 - Testing in Xcode (Session 413)](https://developer.apple.com/videos/play/wwdc2019/413/)
[Apple WWDC 2018 - Testing Tips & Tricks (Session 417)](https://developer.apple.com/videos/play/wwdc2018/417/)
[Apple WWDC 2017 - Engineering for Testability (Session 414)](https://developer.apple.com/videos/play/wwdc2017/414/)
[Apple WWDC 2017 - What's New in Testing (Session 409)](https://developer.apple.com/videos/play/wwdc2017/409)
[Apple WWDC 2016 - Advanced Testing and Continuous Integration (Session 409)](https://developer.apple.com/videos/play/wwdc2016/409)
[Apple WWDC 2015 - UI Testing in Xcode (Session 406)](https://developer.apple.com/videos/play/wwdc2015/406)### Realm Academy
[Realm Academy. Jon Reid - Making Mock Objects More Useful](https://academy.realm.io/posts/making-mock-objects-more-useful-try-swift-2017/)
[Realm Academy. Jorge Ortiz - TDD For Masses](https://academy.realm.io/posts/cmdu-jorge-ortiz-tdd4masses/)
[Realm Academy. Jorge Ortiz - Unit Testing in Swift 2](https://academy.realm.io/posts/jorge-ortiz-unit-testing-swift-2/)
[Realm Academy. Michael May - Testing an Untested App](https://academy.realm.io/posts/cmdu-michael-may-testing-untested-app/)
[Realm Academy. Kyle Fuller - Testing Without xCode](https://academy.realm.io/posts/cmdu-fuller-testing-without-xcode/)
[Realm Academy. Veronica Ray - Real World Mocking Swift](https://academy.realm.io/posts/tryswift-veronica-ray-real-world-mocking-swift/)
[Realm Academy. Giovanni Lodi - Testing Realm Apps](https://academy.realm.io/posts/tutorial-testing-realm-apps/)
[Realm Academy. TJ Usiyan - Property-Based Testing with SwiftCheck](https://academy.realm.io/posts/tryswift-tj-usiyan-property-based-testing-swiftcheck/)
[Realm Academy. Jaim Zuber - Stylish Developers Guide to Unit Testing in Swift](https://academy.realm.io/posts/altconf-jaim-zuber-stylish-developers-guide-to-unit-testing-in-swift/)
[Realm Academy. Ayaka Nonaka - Testing in Swift Protocols and ViewModels](https://academy.realm.io/posts/testing-in-swift-protocols-and-view-models/)
[Realm Academy. Jeff Hui - Testing in Swift](https://academy.realm.io/posts/testing-in-swift/)
[Realm Academy. Sam Soffes - DVR: Network Testing in Swift](https://academy.realm.io/posts/soffes-swift-network-testing-dvr/)
[Realm Academy. G. Tregoning & P. Zabelin - Successful Test-Driven Development on iOS](https://academy.realm.io/posts/altconf-glen-tregoning-paul-zabelin-successful-test-driven-development-on-ios/)### CocoaHeads
[CocoaHeads Cincinnati (EN) Doug Sjoquist - Xcode UI Testing. The Good, the Bad, and the Ugly](https://www.youtube.com/watch?v=dhH2O1MxXDk)
[CocoaHeads Dusseldorf (EN) Dominik Hauser - Test Driven iOS Development With Swift](https://www.youtube.com/watch?v=GLBToigJ-3M)
[CocoaHeads Kyiv (EN) John Sundell - Writing Swift Code with Great Testability](https://www.youtube.com/watch?v=HHEp4mcLXfk)
[CocoaHeads Moscow (RU) Vadim Drobinin - Testing UI in xCode](https://www.youtube.com/watch?v=XmJl_0b1xbY)
[CocoaHeads Moscow (RU) Igor Vasilenko - TDD Patterns and why Do We Need To Know About Them](https://www.youtube.com/watch?v=ZyTJn2ne4Gg)### Rambler & Co
[Rambler & Co (RU) Rambler.iOS #5. Stas Tsyganov - VIPER & TDD](https://www.youtube.com/watch?v=1y2vxtD7b6g)
[Rambler & Co (RU) Rambler.iOS #8. Egor Tolstoy - Clean Unit Tests](https://www.youtube.com/watch?v=VQscQ-glpwI)
[Rambler & Co (RU) Aleksandr Sychev - RDSDataSource: Clean tests with Swift](https://www.youtube.com/watch?v=PQOLU1d6iIM)
[Rambler & Co (RU) Andrey Ryazanov - Test-Driven Development in iOS](https://www.youtube.com/watch?v=v2AlaKD9TPg&t=12s)### Mobius
[Mobius 2019 (EN) Ewa Ludwiczak, Aleksander Grzyb — Layers of Testing in iOS Applications](https://www.youtube.com/watch?v=IMRIvRZtH7s)
[Mobius 2016 (RU) Evgenyi Matsiuk — Writing Testable Code](https://www.youtube.com/watch?v=AlxMGxs2QnM&t=2s)### Misc
[fwdays (RU) Alexey Demedetsky - Unit Testing in Swift](https://www.youtube.com/watch?v=fQRAeUGv-tw)
[NSSpain 2017. Dave Schukin - Why You Shouldn’t Write Tests (Yes, We’re Going There)](https://vimeo.com/235002959)
[Swift London, Yvette Cook - Understanding Rx Swift using Rx Tests](https://www.youtube.com/watch?v=FgbTenGH-P0)
[Devoxx Belgium. Maxime David - How to test your awesome iOS mobile application?](https://www.youtube.com/watch?v=mx4ISpaOjPo)
[MOConfBy, Eleni Papanikolopoulou - Venturing the world of Rx Swift Unit Testing](https://www.youtube.com/watch?v=49K6MMhn-fc)
[Pivotal Labs. Alex Tamoykin - Test Driven Development with Xcode](https://www.youtube.com/watch?v=06-9Xsd8saA)
[Jon Reid - Test Driven Development for iOS](https://www.youtube.com/watch?v=Jzlz3Bx-NzM)## 💡 Docs, Blogs Posts and Written Tutorials:
### A
[Apple - Unit Testing Concepts](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/01-introduction.html)
[Andrew Bancroft - Unit Testing Model Layer with Core Data and Swift](http://www.andrewcbancroft.com/2015/01/13/unit-testing-model-layer-core-data-swift/)
[Adam Borek - RxTest. How to test the Observable in Swift](http://adamborek.com/rxtests-rxactionsheet/)
[agnosticdev.com - How to Write Unit Tests in Swift](https://www.agnosticdev.com/content/how-write-unit-tests-swift)
[Alexander Grebenyuk - Rx Swift Testing](http://kean.github.io/post/rxswift-testing)
[Alexander Murphy - The Guide to Unit Testing in Swift with Apollo and GraphQL (Part One)](https://medium.com/@alexandermurphy/the-guide-to-unit-testing-in-swift-with-apollo-and-graphql-part-one-b82f6842e058)
[atomicobject.com: Matt Nedrich - Testing with Swift – Approaches & Useful Libraries](https://spin.atomicobject.com/2016/05/02/testing-swift-code/#.VydVY-RcsWY.hackernews)
[albertodebortoli.com - The Template for View Controller Unit Testing](https://albertodebortoli.com/2018/03/12/easy-view-controller-unit-testing/)
[albertodebortoli.com - Offline UI Testing on iOS with Stubs](https://albertodebortoli.com/2015/11/23/offline-ui-testing-on-ios-with-stubs/)
[Agranat Mark - Mocking in Swift with Sourcery (RU)](https://habr.com/post/332120/)
[appcoda.com - Automated UI Tests](https://www.appcoda.com/automated-ui-test/)
[appcoda.com - Unit Testing in Swift](https://www.appcoda.com/unit-testing-swift/)
[appcoda.com - TDD with Quick & Nimble](https://www.appcoda.com/tdd-quick-nimble/)
[appunite.com - How to test iOS apps with Combine, ReactiveSwift and Rx Swift](https://appunite.com/blog/testing-ios-apps-combine-reactiveswift-rxswift)### B
[Bleeding Edge. Matthew Liam Healy - Writing better unit tests in Swift: Part One](https://medium.com/bleeding-edge/writing-better-unit-tests-in-swift-part-one-e4a06fbc682b)
[Benoit Pasquier - Unit Testing your MVVM architecture in Swift](https://benoitpasquier.com/unit-test-swift-mvvm-pattern/)
[Benoit Pasquier - Rx Swift & MVVM - How to use Rx Tests to test your ViewModel](https://benoitpasquier.com/how-to-use-rxtests-to-test-mvvm/)### C
[CocoaAcademy - Setup your iOS Testing Env](https://medium.com/cocoaacademymag/setup-your-ios-testing-env-5617d1a13043)
[Cocoa with Love - Testing Actions Over Time](https://www.cocoawithlove.com/blog/testing-actions-over-time.html)
[Chris Eidhof - QuickCheck-in Swift](http://chris.eidhof.nl/post/quickcheck-in-swift/)
[cobeisfresh.com - Unit Testing iOS in Swift: A Testable Architecture](https://medium.cobeisfresh.com/unit-testing-ios-in-swift-part-2-a-testable-architecture-9048aca52e0a)
[cocoacasts.com - What Are You Testing](https://cocoacasts.com/what-are-you-testing)
[cocoacasts.com - Write Better Code By Writing Unit Tests](https://cocoacasts.com/write-better-code-by-writing-unit-tests)
[cocoacasts.com - How To Generate Code Coverage Reports In Xcode With Slather]()
[cocoacasts.com - How To Enable Code Coverage In Xcode](https://cocoacasts.com/how-to-generate-code-coverage-reports-in-xcode-with-slather)
[cocoacasts.com - How to Mock and Stub a System Class in Swift: Part 1](https://cocoacasts.com/how-to-mock-and-stub-a-system-class-in-swift-part-1)
[cocoacasts.com - How to Mock and Stub a System Class in Swift: Part 2](https://cocoacasts.com/how-to-mock-and-stub-a-system-class-in-swift-part-2)
[cocoacasts.com - How to Mock and Stub a System Class in Swift: Part 3](https://cocoacasts.com/how-to-mock-and-stub-a-system-class-in-swift-part-3)
[cocoacasts.com - How to Unit Test Private Methods in Swift](https://cocoacasts.com/how-to-unit-test-private-methods-in-swift/)
[clean-swift.com - To mock or not to mock](https://clean-swift.com/to-mock-or-not-to-mock/)
[clean-swift.com - Does stubbing give you an empty feeling – am I stubbing too much?](https://clean-swift.com/am-i-stubbing-too-much/)
[clean-swift.com - Data independence is key to robust architecture and non-fragile unit tests](https://clean-swift.com/data-independence-is-key-to-robust-architecture-and-non-fragile-unit-tests/)
[clean-swift.com - Seed data for your unit tests](https://clean-swift.com/seed-data-unit-tests/)
[clean-swift.com - How to mock an Apple built-in class](https://clean-swift.com/mock-apple-built-in-class/)
[clean-swift.com - Advanced Dependency Injection](https://clean-swift.com/advanced-dependency-injection/)
[clean-swift.com - Unit Testing and TDD Terminology](https://clean-swift.com/unit-testing-and-tdd-terminology/)
[clean-swift.com - How to Make Your Unit Tests Run Faster](https://clean-swift.com/how-to-make-your-unit-tests-run-faster/)### F
[freecodecamp.org (Navdeep Singh) - How to run tests in Rx Swift](https://www.freecodecamp.org/news/testing-in-rxswift-2b6eeaeaf432/)
[FlawlessApp Blog. ShihTing Huang - The complete guide to Network Unit Testing in Swift](https://medium.com/flawless-app-stories/the-complete-guide-to-network-unit-testing-in-swift-db8b3ee2c327)
[FlawlessApp Blog. ShihTing Huang - Cracking the Tests for Core Data](https://medium.com/flawless-app-stories/cracking-the-tests-for-core-data-15ef893a3fee)
[FlawlessApp Blog. ShihTing Huang - Applying Unit Tests to MVVM with Swift](https://medium.com/flawless-app-stories/applying-unit-tests-to-mvvm-with-swift-ba5a79df8a18)
[FlawlessApp Blog. Leandro Pérez - Memory Leaks in Swift (Testing for Leaks)](https://medium.com/flawless-app-stories/memory-leaks-in-swift-bfd5f95f3a74)### G
[girappe.com - Using SwiftyMocky to generate mocks and simplify unit testing in Swift](http://blog.girappe.com/?swiftymocky/)### H
[Humble iOS Developer - Testing with Moya 101](https://medium.com/@imho_ios/testing-with-moya-101-9e33a9404d61)
[hoangtran.me - How to unit test your Realm database layer](http://hoangtran.me/ios/testing/2016/10/15/how-to-unit-test-your-realm-database-layer/)### I
[iOS Unit Testing by Ron Lisle](http://iosunittesting.com)
[initwithstyle.net - TDD in Swift Playgrounds](initwithstyle.net/2015/11/tdd-in-swift-playgrounds/)### J
[Joe Susnick - How to test a Nib](https://medium.com/@joesusnick/how-to-test-a-nib-533d02847d78)
[John Reid (Quality Coding) - How to Make Specialized Test Assertions in Swift](https://qualitycoding.org/swift-test-assertions/)
[John Reid (Quality Coding) - I’m Pretty Sure Most of Us Are Wrong about XCTestCase tearDown...](https://qualitycoding.org/teardown/)
[John Reid (Quality Coding) - Design Pattern for Tests that Do Real Networking](https://qualitycoding.org/asynchronous-tests/)
[John Reid (Quality Coding) - How Does Swift Support Stubbing and Mocking?](https://qualitycoding.org/swift-test-double/)
[John Reid (Quality Coding) - How to Design Swift Mock Objects](https://qualitycoding.org/swift-mock-objects/)
[John Reid (Quality Coding) - Partial Mock: Have You Wished You Could Fake a Return Value in Swift?](https://qualitycoding.org/swift-partial-mock/)
[John Reid (Quality Coding) - Swift Mock Objects: How to Avoid Fragile Tests](https://qualitycoding.org/try-swift-mock-objects/)
[John Reid (Quality Coding) - Mocking Standalone Functions](https://qualitycoding.org/mocking-standalone-functions/)
[John Reid (Quality Coding) - Swift Unit Testing Template](https://qualitycoding.org/swift-unit-testing-template/)### K
[Krzysztof Zabłocki - Testing iOS Apps](http://merowing.info/2017/01/testing-ios-apps/)### M
[Marco Santa - Test Doubles In Swift](https://marcosantadev.com/test-doubles-swift/)
[MarisiBrothers.com - Common unit testing techniques on iOS](http://www.marisibrothers.com/2017/03/common-unit-testing-techniques-on-ios.html#1b)
[Mike Ash - Writing Unit Tests](https://www.mikeash.com/pyblog/friday-qa-2011-07-22-writing-unit-tests.html)
[mokacoding.com - Testing callbacks in Swift with XCTest](http://www.mokacoding.com/blog/testing-callbacks-in-swift-with-xctest/)### N
[NSHipster - Unit Testing](http://nshipster.com/unit-testing/)### M
[Marin Todorov - Testing your Rx Swift code, part 1](http://rx-marin.com/post/rxswift-rxtests-unit-tests/)
[Marin Todorov - Testing your Rx Swift code, part 2](http://rx-marin.com/post/rxswift-rxtests-unit-tests-part-2/)
[Marin Todorov - Testing with Rx Blocking, part 1](http://rx-marin.com/post/rxblocking-part1/)
[Marin Todorov - Testing with Rx Blocking, part 2](http://rx-marin.com/post/rxblocking-part2/)### O
[objc.io - Issue #15: Testing](https://www.objc.io/issues/15-testing/)
[Oleg Dreyman - Taking Dependency Injection one step further with Swift](https://medium.com/anysuggestion/taking-dependency-injection-one-step-further-with-swift-cde1b3d41d49)### P
[Practical iOS Dev - Four simple rules for architecting iOS unit tests](https://medium.com/practical-ios-development/the-anatomy-of-a-well-architected-ios-unit-test-a509d2be9ec0)
### R
[raizlabs.com - XCTest and Optional Unwrapping](https://www.raizlabs.com/dev/2017/02/xctest-optional-unwrapping/)
[raywanderlich.com - Testing Your RxSwift Code](https://www.raywenderlich.com/7408-testing-your-rxswift-code)
[raywanderlich.com - iOS Unit Testing and UI Testing Tutorial](https://www.raywenderlich.com/960290-ios-unit-testing-and-ui-testing-tutorial?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more)
[raywanderlich.com Dominik Hauser - Swift Unit Testing: Mocking Objects](https://www.raywenderlich.com/101306/unit-testing-tutorial-mocking-objects)
[raywanderlich.com Audrey Tam - iOS Unit Testing and UI Testing Tutorial](https://www.raywenderlich.com/150073/ios-unit-testing-and-ui-testing-tutorial)
[Rodrigo Cavalcante - Unit Testing UITableView](https://medium.com/cocoaacademymag/unit-testing-uitableview-2387f3a42b4f)
[roadfiresoftware.com - How to Write Unit Tests in Swift 4](https://roadfiresoftware.com/2018/03/how-to-write-unit-tests-in-swift-4-with-xctest/)
[Robert C. Martin - The Cycles Of TDD](http://blog.cleancoder.com/uncle-bob/2014/12/17/TheCyclesOfTDD.html)
[Robert C. Martin - The Pragmatics Of TDD](http://blog.cleancoder.com/uncle-bob/2013/03/06/ThePragmaticsOfTDD.html)
[robkerr.com - Flexible and Easy Unit Testing of CoreData Persistence Code](https://robkerr.com/flexible-and-easy-unit-testing-of-coredata-persistence-code-2b2cf456cfae)### S
[Swift 2 Go - How to test with fake data on ios](https://medium.com/swift2go/how-to-test-with-fake-data-on-ios-66dc87bf093e)
[Swift by Sundell - Unit Testing](https://www.swiftbysundell.com/basics/unit-testing)
[Swift by Sundell - Mock-free Unit Tests in Swift](https://www.swiftbysundell.com/posts/mock-free-unit-tests-in-swift)
[Swift by Sundell - Unit Testing in Playgrounds](https://www.swiftbysundell.com/posts/writing-unit-tests-in-a-swift-playground)
[Swift by Sundell - Using Unit Tests to Identify and Avoid Memory Leaks](https://www.swiftbysundell.com/posts/using-unit-tests-to-identify-avoid-memory-leaks-in-swift)
[Swift by Sundell - Mocking in Swift](https://www.swiftbysundell.com/posts/mocking-in-swift)
[Swift by Sundell - Testing Swift Code That Uses System Singletons in 3 Easy Steps](https://www.swiftbysundell.com/posts/testing-swift-code-that-uses-system-singletons-in-3-easy-steps)
[Swift by Sundell - Time Traveling in Swift with Unit Tests](https://www.swiftbysundell.com/posts/time-traveling-in-swift-unit-tests)
[Swift by Sundell - Reducing Flakiness in Swift Tests](https://www.swiftbysundell.com/posts/reducing-flakiness-in-swift-tests)
[Swift by Sundell - Getting Started with xCode UI Testing in Swift](https://www.swiftbysundell.com/posts/getting-started-with-xcode-ui-testing-in-swift)
[Swift by Sundell - Avoiding Force Unwrapping in Swift Unit Tests](https://www.swiftbysundell.com/posts/avoiding-force-unwrapping-in-swift-unit-tests)
[Swift by Sundell - Making Swift tests easier to debug](https://www.swiftbysundell.com/posts/making-swift-tests-easier-to-debug)
[swiftyjimmy.com - How to unit test ViewModel in Swift](http://swiftyjimmy.com/unit-test-mvvm-in-swift/)
[Shashikant Jagtap - Network Stubbing options for XCTest and XCUITest in Swift](https://medium.com/xcblog/network-stubbing-options-for-xctest-and-xcuitest-in-swift-2e0dcce9a37d)### V
[vincit.com - Unit testing Rx Swift application](https://medium.com/vincit/unit-testing-rxswift-application-f0c6ea460429)### Y
[Yet Another Swift Blog by Vadim Bulavin - Real World Unit Testing in Swift](https://www.vadimbulavin.com/real-world-unit-testing-in-swift/)### W
[williamboles.me - Can unit testing and CoreData become BFFs?](https://williamboles.me/can-unit-testing-and-core-data-become-bffs/)## 👨🏼💻 Checklists & Notes:
[iOS Testing Manifesto (by Hesham Salman)](https://medium.com/@hesham.salman/the-ios-testing-manifesto-e1bc821cc4c3)
[Unit Testing Patterns (by Clint Cabanero)](https://github.com/ccabanero/ios-unit-testing-patterns)
[Testing Notes (by Ivan Kusalic)](https://gist.github.com/ikusalic/7145077)## 📻 Podcasts:
[FatalError - Getting Started with Unit Testing](https://fatalerror.fm/episodes/2016/11/21/9-getting-started-with-testing)
[FatalError - Hypothetical Testing Tricks](https://fatalerror.fm/episodes/2018/3/16/61-hypothetical-testing-tricks)
[FatalError - Testing Your Network Layer](https://fatalerror.fm/episodes/2017/2/13/17-testing-your-network-layer)
[Podlodka podcast (RU) - Test-Driven Development](https://soundcloud.com/podlodka/podlodka-11-tdd)
[RayWenderlich - Unit Testing with Ellen Shapiro](https://www.raywenderlich.com/91410/unit-testing-ellen-shapiro-podcast-s02-e10)
[Inside iOS Dev - Testing in Object-Oriented Applications](http://insideiosdev.com/6e60aca1)
[Inside iOS Dev - Introduction to Dependency Injection](http://insideiosdev.com/4d78d46b)
[Swift Unwrapped - Testing Swift](https://spec.fm/podcasts/swift-unwrapped/70319)## 📺 Video Tutorials:
[Alexito's World - Testing an operator with TestScheduler, Rx Swift](https://www.youtube.com/watch?v=HKigVK1eqwE)
[RayWanderlich.com RWDevCon 2016: Xcode UI Testing - Live Tutorial Session](https://www.youtube.com/watch?v=NrHSZgbQ7_k)
[Essential Developer - Building a Swift Quiz App with TDD and Modular Design](https://www.youtube.com/playlist?list=PLyjgjmI1UzlSUlaQD0RvLwwW-LSlJn-F6)
[Swift Programming Tutorials - Testing Asynchronous Code in Swift 3](https://www.youtube.com/watch?v=xa93cjIeuY0)
[LetsBuildThatApp.com Brian Woong - What is Unit Testing, Why We Use It, and Sample Test Cases](https://www.youtube.com/watch?v=iWtxEDE1IR4)
[Code Pro - iOS Unit Test Mocking Tutorial](https://www.youtube.com/watch?v=zB61-7E7eoo)## 📦 Awesome Curated Lists (Testing Tools/Frameworks)
[Awesome-iOS Testing](https://github.com/vsouza/awesome-ios#testing) - iOS testing tools/frameworks.
[Awesome-Swift Testing](https://github.com/matteocrippa/awesome-swift#testing) - Swift testing tools/frameworks.