├── .travis.yml ├── LICENSE ├── .gitignore └── README.md /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | 3 | rvm: 4 | ruby-2.4.1 5 | 6 | before_script: 7 | gem install awesome_bot 8 | 9 | script: 10 | wl=https://github.com/,http://git.io/,https://www.youtube.com/,https://vimeo.com,https://realm.io 11 | 12 | awesome_bot README.md --allow-redirect --white-list $wl 13 | 14 | notifications: 15 | email: false 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Oleh Zayats 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xccheckout 23 | *.xcscmblueprint 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | *.ipa 28 | *.dSYM.zip 29 | *.dSYM 30 | 31 | ## Playgrounds 32 | timeline.xctimeline 33 | playground.xcworkspace 34 | 35 | # Swift Package Manager 36 | # 37 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 38 | # Packages/ 39 | # Package.pins 40 | .build/ 41 | 42 | # CocoaPods 43 | # 44 | # We recommend against adding the Pods directory to your .gitignore. However 45 | # you should judge for yourself, the pros and cons are mentioned at: 46 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 47 | # 48 | # Pods/ 49 | 50 | # Carthage 51 | # 52 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 53 | # Carthage/Checkouts 54 | 55 | Carthage/Build 56 | 57 | # fastlane 58 | # 59 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 60 | # screenshots whenever they are needed. 61 | # For more information about the recommended setup visit: 62 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 63 | 64 | fastlane/report.xml 65 | fastlane/Preview.html 66 | fastlane/screenshots 67 | fastlane/test_output 68 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Unit Testing in Swift
2 | A curated collection of awesome blog articles, books, talks, podcasts, tools/frameworks and examples.
3 | 4 | ![](https://travis-ci.org/oleh-zayats/awesome-unit-testing-swift.svg?branch=master)
5 | 6 | ## 🎤 Talks:
7 | 8 | ### Apple WWDC
9 | [Apple WWDC 2019 - Testing in Xcode (Session 413)](https://developer.apple.com/videos/play/wwdc2019/413/)
10 | [Apple WWDC 2018 - Testing Tips & Tricks (Session 417)](https://developer.apple.com/videos/play/wwdc2018/417/)
11 | [Apple WWDC 2017 - Engineering for Testability (Session 414)](https://developer.apple.com/videos/play/wwdc2017/414/)
12 | [Apple WWDC 2017 - What's New in Testing (Session 409)](https://developer.apple.com/videos/play/wwdc2017/409)
13 | [Apple WWDC 2016 - Advanced Testing and Continuous Integration (Session 409)](https://developer.apple.com/videos/play/wwdc2016/409)
14 | [Apple WWDC 2015 - UI Testing in Xcode (Session 406)](https://developer.apple.com/videos/play/wwdc2015/406)
15 | 16 | ### Realm Academy
17 | [Realm Academy. Jon Reid - Making Mock Objects More Useful](https://academy.realm.io/posts/making-mock-objects-more-useful-try-swift-2017/)
18 | [Realm Academy. Jorge Ortiz - TDD For Masses](https://academy.realm.io/posts/cmdu-jorge-ortiz-tdd4masses/)
19 | [Realm Academy. Jorge Ortiz - Unit Testing in Swift 2](https://academy.realm.io/posts/jorge-ortiz-unit-testing-swift-2/)
20 | [Realm Academy. Michael May - Testing an Untested App](https://academy.realm.io/posts/cmdu-michael-may-testing-untested-app/)
21 | [Realm Academy. Kyle Fuller - Testing Without xCode](https://academy.realm.io/posts/cmdu-fuller-testing-without-xcode/)
22 | [Realm Academy. Veronica Ray - Real World Mocking Swift](https://academy.realm.io/posts/tryswift-veronica-ray-real-world-mocking-swift/)
23 | [Realm Academy. Giovanni Lodi - Testing Realm Apps](https://academy.realm.io/posts/tutorial-testing-realm-apps/)
24 | [Realm Academy. TJ Usiyan - Property-Based Testing with SwiftCheck](https://academy.realm.io/posts/tryswift-tj-usiyan-property-based-testing-swiftcheck/)
25 | [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/)
26 | [Realm Academy. Ayaka Nonaka - Testing in Swift Protocols and ViewModels](https://academy.realm.io/posts/testing-in-swift-protocols-and-view-models/)
27 | [Realm Academy. Jeff Hui - Testing in Swift](https://academy.realm.io/posts/testing-in-swift/)
28 | [Realm Academy. Sam Soffes - DVR: Network Testing in Swift](https://academy.realm.io/posts/soffes-swift-network-testing-dvr/)
29 | [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/)
30 | 31 | ### CocoaHeads
32 | [CocoaHeads Cincinnati (EN) Doug Sjoquist - Xcode UI Testing. The Good, the Bad, and the Ugly](https://www.youtube.com/watch?v=dhH2O1MxXDk)
33 | [CocoaHeads Dusseldorf (EN) Dominik Hauser - Test Driven iOS Development With Swift](https://www.youtube.com/watch?v=GLBToigJ-3M)
34 | [CocoaHeads Kyiv (EN) John Sundell - Writing Swift Code with Great Testability](https://www.youtube.com/watch?v=HHEp4mcLXfk)
35 | [CocoaHeads Moscow (RU) Vadim Drobinin - Testing UI in xCode](https://www.youtube.com/watch?v=XmJl_0b1xbY)
36 | [CocoaHeads Moscow (RU) Igor Vasilenko - TDD Patterns and why Do We Need To Know About Them](https://www.youtube.com/watch?v=ZyTJn2ne4Gg)
37 | 38 | ### Rambler & Co
39 | [Rambler & Co (RU) Rambler.iOS #5. Stas Tsyganov - VIPER & TDD](https://www.youtube.com/watch?v=1y2vxtD7b6g)
40 | [Rambler & Co (RU) Rambler.iOS #8. Egor Tolstoy - Clean Unit Tests](https://www.youtube.com/watch?v=VQscQ-glpwI)
41 | [Rambler & Co (RU) Aleksandr Sychev - RDSDataSource: Clean tests with Swift](https://www.youtube.com/watch?v=PQOLU1d6iIM)
42 | [Rambler & Co (RU) Andrey Ryazanov - Test-Driven Development in iOS](https://www.youtube.com/watch?v=v2AlaKD9TPg&t=12s)
43 | 44 | ### Mobius
45 | [Mobius 2019 (EN) Ewa Ludwiczak, Aleksander Grzyb — Layers of Testing in iOS Applications](https://www.youtube.com/watch?v=IMRIvRZtH7s)
46 | [Mobius 2016 (RU) Evgenyi Matsiuk — Writing Testable Code](https://www.youtube.com/watch?v=AlxMGxs2QnM&t=2s)
47 | 48 | ### Misc
49 | [fwdays (RU) Alexey Demedetsky - Unit Testing in Swift](https://www.youtube.com/watch?v=fQRAeUGv-tw)
50 | [NSSpain 2017. Dave Schukin - Why You Shouldn’t Write Tests (Yes, We’re Going There)](https://vimeo.com/235002959)
51 | [Swift London, Yvette Cook - Understanding Rx Swift using Rx Tests](https://www.youtube.com/watch?v=FgbTenGH-P0)
52 | [Devoxx Belgium. Maxime David - How to test your awesome iOS mobile application?](https://www.youtube.com/watch?v=mx4ISpaOjPo)
53 | [MOConfBy, Eleni Papanikolopoulou - Venturing the world of Rx Swift Unit Testing](https://www.youtube.com/watch?v=49K6MMhn-fc)
54 | [Pivotal Labs. Alex Tamoykin - Test Driven Development with Xcode](https://www.youtube.com/watch?v=06-9Xsd8saA)
55 | [Jon Reid - Test Driven Development for iOS](https://www.youtube.com/watch?v=Jzlz3Bx-NzM)
56 | 57 | ## 💡 Docs, Blogs Posts and Written Tutorials:
58 | 59 | ### A
60 | [Apple - Unit Testing Concepts](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/01-introduction.html)
61 | [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/)
62 | [Adam Borek - RxTest. How to test the Observable in Swift](http://adamborek.com/rxtests-rxactionsheet/)
63 | [agnosticdev.com - How to Write Unit Tests in Swift](https://www.agnosticdev.com/content/how-write-unit-tests-swift)
64 | [Alexander Grebenyuk - Rx Swift Testing](http://kean.github.io/post/rxswift-testing)
65 | [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)
66 | [atomicobject.com: Matt Nedrich - Testing with Swift – Approaches & Useful Libraries](https://spin.atomicobject.com/2016/05/02/testing-swift-code/#.VydVY-RcsWY.hackernews)
67 | [albertodebortoli.com - The Template for View Controller Unit Testing](https://albertodebortoli.com/2018/03/12/easy-view-controller-unit-testing/)
68 | [albertodebortoli.com - Offline UI Testing on iOS with Stubs](https://albertodebortoli.com/2015/11/23/offline-ui-testing-on-ios-with-stubs/)
69 | [Agranat Mark - Mocking in Swift with Sourcery (RU)](https://habr.com/post/332120/)
70 | [appcoda.com - Automated UI Tests](https://www.appcoda.com/automated-ui-test/)
71 | [appcoda.com - Unit Testing in Swift](https://www.appcoda.com/unit-testing-swift/)
72 | [appcoda.com - TDD with Quick & Nimble](https://www.appcoda.com/tdd-quick-nimble/)
73 | [appunite.com - How to test iOS apps with Combine, ReactiveSwift and Rx Swift](https://appunite.com/blog/testing-ios-apps-combine-reactiveswift-rxswift)
74 | 75 | ### B
76 | [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)
77 | [Benoit Pasquier - Unit Testing your MVVM architecture in Swift](https://benoitpasquier.com/unit-test-swift-mvvm-pattern/)
78 | [Benoit Pasquier - Rx Swift & MVVM - How to use Rx Tests to test your ViewModel](https://benoitpasquier.com/how-to-use-rxtests-to-test-mvvm/)
79 | 80 | 81 | ### C
82 | [CocoaAcademy - Setup your iOS Testing Env](https://medium.com/cocoaacademymag/setup-your-ios-testing-env-5617d1a13043)
83 | [Cocoa with Love - Testing Actions Over Time](https://www.cocoawithlove.com/blog/testing-actions-over-time.html)
84 | [Chris Eidhof - QuickCheck-in Swift](http://chris.eidhof.nl/post/quickcheck-in-swift/)
85 | [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)
86 | [cocoacasts.com - What Are You Testing](https://cocoacasts.com/what-are-you-testing)
87 | [cocoacasts.com - Write Better Code By Writing Unit Tests](https://cocoacasts.com/write-better-code-by-writing-unit-tests)
88 | [cocoacasts.com - How To Generate Code Coverage Reports In Xcode With Slather]()
89 | [cocoacasts.com - How To Enable Code Coverage In Xcode](https://cocoacasts.com/how-to-generate-code-coverage-reports-in-xcode-with-slather)
90 | [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)
91 | [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)
92 | [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)
93 | [cocoacasts.com - How to Unit Test Private Methods in Swift](https://cocoacasts.com/how-to-unit-test-private-methods-in-swift/)
94 | [clean-swift.com - To mock or not to mock](https://clean-swift.com/to-mock-or-not-to-mock/)
95 | [clean-swift.com - Does stubbing give you an empty feeling – am I stubbing too much?](https://clean-swift.com/am-i-stubbing-too-much/)
96 | [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/)
97 | [clean-swift.com - Seed data for your unit tests](https://clean-swift.com/seed-data-unit-tests/)
98 | [clean-swift.com - How to mock an Apple built-in class](https://clean-swift.com/mock-apple-built-in-class/)
99 | [clean-swift.com - Advanced Dependency Injection](https://clean-swift.com/advanced-dependency-injection/)
100 | [clean-swift.com - Unit Testing and TDD Terminology](https://clean-swift.com/unit-testing-and-tdd-terminology/)
101 | [clean-swift.com - How to Make Your Unit Tests Run Faster](https://clean-swift.com/how-to-make-your-unit-tests-run-faster/)
102 | 103 | ### F
104 | [freecodecamp.org (Navdeep Singh) - How to run tests in Rx Swift](https://www.freecodecamp.org/news/testing-in-rxswift-2b6eeaeaf432/)
105 | [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)
106 | [FlawlessApp Blog. ShihTing Huang - Cracking the Tests for Core Data](https://medium.com/flawless-app-stories/cracking-the-tests-for-core-data-15ef893a3fee)
107 | [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)
108 | [FlawlessApp Blog. Leandro Pérez - Memory Leaks in Swift (Testing for Leaks)](https://medium.com/flawless-app-stories/memory-leaks-in-swift-bfd5f95f3a74)
109 | 110 | ### G
111 | [girappe.com - Using SwiftyMocky to generate mocks and simplify unit testing in Swift](http://blog.girappe.com/?swiftymocky/)
112 | 113 | ### H
114 | [Humble iOS Developer - Testing with Moya 101](https://medium.com/@imho_ios/testing-with-moya-101-9e33a9404d61)
115 | [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/)
116 | 117 | ### I
118 | [iOS Unit Testing by Ron Lisle](http://iosunittesting.com)
119 | [initwithstyle.net - TDD in Swift Playgrounds](initwithstyle.net/2015/11/tdd-in-swift-playgrounds/)
120 | 121 | ### J
122 | [Joe Susnick - How to test a Nib](https://medium.com/@joesusnick/how-to-test-a-nib-533d02847d78)
123 | [John Reid (Quality Coding) - How to Make Specialized Test Assertions in Swift](https://qualitycoding.org/swift-test-assertions/)
124 | [John Reid (Quality Coding) - I’m Pretty Sure Most of Us Are Wrong about XCTestCase tearDown...](https://qualitycoding.org/teardown/)
125 | [John Reid (Quality Coding) - Design Pattern for Tests that Do Real Networking](https://qualitycoding.org/asynchronous-tests/)
126 | [John Reid (Quality Coding) - How Does Swift Support Stubbing and Mocking?](https://qualitycoding.org/swift-test-double/)
127 | [John Reid (Quality Coding) - How to Design Swift Mock Objects](https://qualitycoding.org/swift-mock-objects/)
128 | [John Reid (Quality Coding) - Partial Mock: Have You Wished You Could Fake a Return Value in Swift?](https://qualitycoding.org/swift-partial-mock/)
129 | [John Reid (Quality Coding) - Swift Mock Objects: How to Avoid Fragile Tests](https://qualitycoding.org/try-swift-mock-objects/)
130 | [John Reid (Quality Coding) - Mocking Standalone Functions](https://qualitycoding.org/mocking-standalone-functions/)
131 | [John Reid (Quality Coding) - Swift Unit Testing Template](https://qualitycoding.org/swift-unit-testing-template/)
132 | 133 | ### K
134 | [Krzysztof Zabłocki - Testing iOS Apps](http://merowing.info/2017/01/testing-ios-apps/)
135 | 136 | ### M
137 | [Marco Santa - Test Doubles In Swift](https://marcosantadev.com/test-doubles-swift/)
138 | [MarisiBrothers.com - Common unit testing techniques on iOS](http://www.marisibrothers.com/2017/03/common-unit-testing-techniques-on-ios.html#1b)
139 | [Mike Ash - Writing Unit Tests](https://www.mikeash.com/pyblog/friday-qa-2011-07-22-writing-unit-tests.html)
140 | [mokacoding.com - Testing callbacks in Swift with XCTest](http://www.mokacoding.com/blog/testing-callbacks-in-swift-with-xctest/)
141 | 142 | ### N
143 | [NSHipster - Unit Testing](http://nshipster.com/unit-testing/)
144 | 145 | ### M
146 | [Marin Todorov - Testing your Rx Swift code, part 1](http://rx-marin.com/post/rxswift-rxtests-unit-tests/)
147 | [Marin Todorov - Testing your Rx Swift code, part 2](http://rx-marin.com/post/rxswift-rxtests-unit-tests-part-2/)
148 | [Marin Todorov - Testing with Rx Blocking, part 1](http://rx-marin.com/post/rxblocking-part1/)
149 | [Marin Todorov - Testing with Rx Blocking, part 2](http://rx-marin.com/post/rxblocking-part2/)
150 | 151 | ### O
152 | [objc.io - Issue #15: Testing](https://www.objc.io/issues/15-testing/)
153 | [Oleg Dreyman - Taking Dependency Injection one step further with Swift](https://medium.com/anysuggestion/taking-dependency-injection-one-step-further-with-swift-cde1b3d41d49)
154 | 155 | ### P
156 | [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)
157 | 158 | ### R
159 | [raizlabs.com - XCTest and Optional Unwrapping](https://www.raizlabs.com/dev/2017/02/xctest-optional-unwrapping/)
160 | [raywanderlich.com - Testing Your RxSwift Code](https://www.raywenderlich.com/7408-testing-your-rxswift-code)
161 | [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)
162 | [raywanderlich.com Dominik Hauser - Swift Unit Testing: Mocking Objects](https://www.raywenderlich.com/101306/unit-testing-tutorial-mocking-objects)
163 | [raywanderlich.com Audrey Tam - iOS Unit Testing and UI Testing Tutorial](https://www.raywenderlich.com/150073/ios-unit-testing-and-ui-testing-tutorial)
164 | [Rodrigo Cavalcante - Unit Testing UITableView](https://medium.com/cocoaacademymag/unit-testing-uitableview-2387f3a42b4f)
165 | [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/)
166 | [Robert C. Martin - The Cycles Of TDD](http://blog.cleancoder.com/uncle-bob/2014/12/17/TheCyclesOfTDD.html)
167 | [Robert C. Martin - The Pragmatics Of TDD](http://blog.cleancoder.com/uncle-bob/2013/03/06/ThePragmaticsOfTDD.html)
168 | [robkerr.com - Flexible and Easy Unit Testing of CoreData Persistence Code](https://robkerr.com/flexible-and-easy-unit-testing-of-coredata-persistence-code-2b2cf456cfae)
169 | 170 | ### S
171 | [Swift 2 Go - How to test with fake data on ios](https://medium.com/swift2go/how-to-test-with-fake-data-on-ios-66dc87bf093e)
172 | [Swift by Sundell - Unit Testing](https://www.swiftbysundell.com/basics/unit-testing)
173 | [Swift by Sundell - Mock-free Unit Tests in Swift](https://www.swiftbysundell.com/posts/mock-free-unit-tests-in-swift)
174 | [Swift by Sundell - Unit Testing in Playgrounds](https://www.swiftbysundell.com/posts/writing-unit-tests-in-a-swift-playground)
175 | [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)
176 | [Swift by Sundell - Mocking in Swift](https://www.swiftbysundell.com/posts/mocking-in-swift)
177 | [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)
178 | [Swift by Sundell - Time Traveling in Swift with Unit Tests](https://www.swiftbysundell.com/posts/time-traveling-in-swift-unit-tests)
179 | [Swift by Sundell - Reducing Flakiness in Swift Tests](https://www.swiftbysundell.com/posts/reducing-flakiness-in-swift-tests)
180 | [Swift by Sundell - Getting Started with xCode UI Testing in Swift](https://www.swiftbysundell.com/posts/getting-started-with-xcode-ui-testing-in-swift)
181 | [Swift by Sundell - Avoiding Force Unwrapping in Swift Unit Tests](https://www.swiftbysundell.com/posts/avoiding-force-unwrapping-in-swift-unit-tests)
182 | [Swift by Sundell - Making Swift tests easier to debug](https://www.swiftbysundell.com/posts/making-swift-tests-easier-to-debug)
183 | [swiftyjimmy.com - How to unit test ViewModel in Swift](http://swiftyjimmy.com/unit-test-mvvm-in-swift/)
184 | [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)
185 | 186 | ### V
187 | [vincit.com - Unit testing Rx Swift application](https://medium.com/vincit/unit-testing-rxswift-application-f0c6ea460429)
188 | 189 | ### Y
190 | [Yet Another Swift Blog by Vadim Bulavin - Real World Unit Testing in Swift](https://www.vadimbulavin.com/real-world-unit-testing-in-swift/)
191 | 192 | ### W
193 | [williamboles.me - Can unit testing and CoreData become BFFs?](https://williamboles.me/can-unit-testing-and-core-data-become-bffs/)
194 | 195 | ## 👨🏼‍💻 Checklists & Notes:
196 | [iOS Testing Manifesto (by Hesham Salman)](https://medium.com/@hesham.salman/the-ios-testing-manifesto-e1bc821cc4c3)
197 | [Unit Testing Patterns (by Clint Cabanero)](https://github.com/ccabanero/ios-unit-testing-patterns)
198 | [Testing Notes (by Ivan Kusalic)](https://gist.github.com/ikusalic/7145077)
199 | 200 | ## 📻 Podcasts:
201 | [FatalError - Getting Started with Unit Testing](https://fatalerror.fm/episodes/2016/11/21/9-getting-started-with-testing)
202 | [FatalError - Hypothetical Testing Tricks](https://fatalerror.fm/episodes/2018/3/16/61-hypothetical-testing-tricks)
203 | [FatalError - Testing Your Network Layer](https://fatalerror.fm/episodes/2017/2/13/17-testing-your-network-layer)
204 | [Podlodka podcast (RU) - Test-Driven Development](https://soundcloud.com/podlodka/podlodka-11-tdd)
205 | [RayWenderlich - Unit Testing with Ellen Shapiro](https://www.raywenderlich.com/91410/unit-testing-ellen-shapiro-podcast-s02-e10)
206 | [Inside iOS Dev - Testing in Object-Oriented Applications](http://insideiosdev.com/6e60aca1)
207 | [Inside iOS Dev - Introduction to Dependency Injection](http://insideiosdev.com/4d78d46b)
208 | [Swift Unwrapped - Testing Swift](https://spec.fm/podcasts/swift-unwrapped/70319)
209 | 210 | ## 📺 Video Tutorials:
211 | [Alexito's World - Testing an operator with TestScheduler, Rx Swift](https://www.youtube.com/watch?v=HKigVK1eqwE)
212 | [RayWanderlich.com RWDevCon 2016: Xcode UI Testing - Live Tutorial Session](https://www.youtube.com/watch?v=NrHSZgbQ7_k)
213 | [Essential Developer - Building a Swift Quiz App with TDD and Modular Design](https://www.youtube.com/playlist?list=PLyjgjmI1UzlSUlaQD0RvLwwW-LSlJn-F6)
214 | [Swift Programming Tutorials - Testing Asynchronous Code in Swift 3](https://www.youtube.com/watch?v=xa93cjIeuY0)
215 | [LetsBuildThatApp.com Brian Woong - What is Unit Testing, Why We Use It, and Sample Test Cases](https://www.youtube.com/watch?v=iWtxEDE1IR4)
216 | [Code Pro - iOS Unit Test Mocking Tutorial](https://www.youtube.com/watch?v=zB61-7E7eoo)
217 | 218 | 219 | ## 📦 Awesome Curated Lists (Testing Tools/Frameworks) 220 | [Awesome-iOS Testing](https://github.com/vsouza/awesome-ios#testing) - iOS testing tools/frameworks.
221 | [Awesome-Swift Testing](https://github.com/matteocrippa/awesome-swift#testing) - Swift testing tools/frameworks.
222 | --------------------------------------------------------------------------------