An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

        

# Awesome Unit Testing in Swift

A curated collection of awesome blog articles, books, talks, podcasts, tools/frameworks and examples.

![](https://travis-ci.org/oleh-zayats/awesome-unit-testing-swift.svg?branch=master)

## 🎤 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.