Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Mindfulness Personal Development Personal Transformation Meditation Life Purpose Coaching Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Data Science
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee

This course includes:

  • 7.5 hours on-demand video
  • 3 articles
  • 34 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
Development Mobile Development Unit Testing

Testing iOS Apps - Behavior Driven Development Using Swift

Learn Unit Testing, Test Driven Development and Behavior Driven Development in iOS Using Swift Language
Rating: 4.5 out of 54.5 (52 ratings)
479 students
Created by Mohammad Azam
Last updated 12/2020
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • Testing iOS Apps Using Swift
  • Test Driven Development
  • Behavior Driven Development
  • User Interface Testing

Course content

12 sections • 69 lectures • 7h 18m total length

  • Preview02:58
  • Preview02:12
  • Exercise Files
    01:13
  • Credits
    01:17

  • Preview03:14
  • Why should you use TDD?
    03:45
  • What you should test and what you should not?
    04:07
  • When should you use TDD?
    03:34
  • Common misconceptions about TDD
    04:00
  • Rules of writing good test
    03:55

  • Unit Testing
    05:14
  • User Interface Testing
    04:28
  • Integration Testing
    02:42
  • Acceptance Testing
    03:32
  • Performance Testing
    05:28
  • Resources - Types of Testing
    00:05

  • Preview01:53
  • Preview14:25
  • Preview10:00
  • Challenge: Write a unit test to withdraw amount from a bank account
    01:19
  • Solution: Write a unit test to withdraw amount from a bank account
    09:11

  • What is an expectation?
    01:35
  • Testing asynchronous code WRONG WAY
    08:08
  • Testing asynchronous code using Expectations
    04:21
  • Multiple Expectations
    04:09

  • What are Fake, Mocks and Stubs
    05:28
  • Understanding the scenario
    02:50
  • Testing the CMPedometer (WRONG WAY)
    07:50
  • Mocking the Pedometer
    13:16
  • Handling error conditions - Pedometer not available
    06:15
  • Dealing with no permission
    08:07
  • Mocking callbacks
    14:57
  • Getting started with mocking data
    04:16
  • Implementing mocking data callbacks
    13:44

  • What is Behavior Driven Development?
    06:18
  • How BDD is different from TDD?
    10:13
  • Ubiquitous language using Gherkin
    07:39
  • Benefits of BDD
    06:19
  • Challenges of BDD
    03:03
  • Rewriting bank account tests in BDD way
    15:11
  • Resources: Behavior Driven Development
    00:05

  • What is Cucumberish?
    04:10
  • Installing Cocoapods
    01:02
  • Adding Cucumberish dependency using Cocoapods
    05:58
  • Setting up Cucumberish Project
    10:00
  • Writing your first Cucumberish test
    12:48
  • Writing your first Cucumberish test continued
    11:35
  • Writing more tests
    07:42
  • Refactoring using Page Objects
    08:10

  • Understanding App Architecture
    01:28
  • The Outside-In Approach
    04:01
  • IMPORTANT - Downloading the Starter Project
    01:30

  • Setting Up Acceptance Test Features
    09:28
  • Writing the Acceptance Test
    08:41
  • Implementing the User Interface in SwiftUI
    10:47
  • Writing ViewModel Tests to Validate Message
    15:41
  • Writing User IsEligible Unit Test
    08:57
  • Writing User Interface Test to Check Eligible Age
    10:57
  • Implementing Page Objects and Passing Acceptance Tests
    11:24
  • Refactoring Acceptance Tests Using Page Objects
    04:38

Requirements

  • Intermediate knowledge of Swift
  • Knowledge of SwiftUI is recommended but not required
  • Mac

Description

Do you have tests in your app, which protects you from future changes? Can you change your existing code with 100% certainty that it will not break other dependencies? Do you understand the business value your code provides to the client?


If your answer to the above question is NO, then this course is for you!


In this course, you will learn how to write unit tests for your iOS applications. You will learn the principles of Test Driven Development and how it encourages design and architectural decisions of your app. Next, you will learn about Behavior Driven Development and how it provides clarity in order to understand business needs.

Check out the contents of the course:

  1. Understanding Test Driven Development

  2. Types of Testing

  3. Test Driven Development Life Cycle

  4. Test Expectations

  5. Dependency Injection and Mocks

  6. Understanding Behavior Driven Development

  7. Introduction to Cucumberish Framework

  8. Building Credit Card APR Calculation Features


What are the prerequisites for this course?

This course requires knowledge of Swift language. The user interface is implemented using the SwiftUI framework so knowledge of SwiftUI framework is also recommended but not required.


Who should take this course?

This course is intended for all iOS developers, who want to learn about test driven development and behavior driven development.


What students are saying?

There are a lot of Swift courses that show you how to make twitter or instagram, etc ... but Almost all of them don't pay attention to software engineering best practises. What Mohammad has done here is creating rather small projects that have very high quality and actually teach you how to write good code.

BY FAR THE BEST SwiftUI course. I own/watched all of them. This course has both the most relevant content and the best practices to achieve the end result. I have been programming iOS since the App Store opened. My apps have been featured by Apple many times. But I have learned a great deal from this course. HIGHLY RECOMMENDED.

Learning advanced concepts is hard, but Azam makes it easy to understand. and I'm a person who can't understand without making an app, this course is so helpful and an investment for me.


I hope you enjoy the course!


Who this course is for:

  • Developers who wants to learn testing in iOS
  • Developers who wants to write better and more maintainable code using Swift
  • Developers who wants to understand the business value of the product they are implemented
  • Developers who wants to increase their knowledge and move up the corporate ladder

Instructor

Mohammad Azam
Apple Featured iOS Developer and iOS Instructor
Mohammad Azam
  • 4.5 Instructor Rating
  • 6,767 Reviews
  • 52,249 Students
  • 28 Courses

My name is Mohammad Azam and I have been programming in iOS for the last 10+ years. Currently, I am teaching Full Stack Development at DigitalCrafts. Before joining DigitalCrafts I worked as a lead mobile developer for many large companies including Schlumberger, Baker Hughes, AIG and Valic. Currently, I am a senior developer at Blinds Dot Com, a Home Depot company. Before iPhone development I was leading projects in Microsoft ASP technology. I was also awarded the Microsoft MVP award five years in a row due to my contributions in the community.

I have also published several of my personal apps to the App Store including Vegetable Tree which was featured by Apple as the most beautiful gardening app on the App Store. I am a frequent speaker at local and national conferences and have authored many articles for many different development magazines.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.