Published 12/2023
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.20 GB | Duration: 6h 36m
Flutter Firebase Test Driven Development And Clean Architecture
What you'll learn
Flutter Test Driven Development
Flutter Development With Firebase
Flutter Firebase & BLoC
Flutter Mock API Testing
Requirements
Basic understanding of Flutter
Description
In this course, we will cover how to do test driven development. We will also build a dummy app to learn about it in depth. We will cover almost 100 tests which will involve api mock testing, firebase api mock testing, build correct http response, learn how to deal with incorrect or wrong response from the server.What is Test Driven Development (TDD)?In layman’s terms, Test Driven Development (TDD) is a software development practice that focuses on creating unit test cases before developing the actual code. It is an iterative approach combining programming, unit test creation, and refactoring.The TDD approach originates from the Agile manifesto principles and Extreme programming.As the name suggests, the test process drives software development.Moreover, it’s a structuring practice that enables developers and testers to obtain optimized code that proves resilient in the long term.In TDD, developers create small test cases for every feature based on their initial understanding. The primary intention of this technique is to modify or write new code only if the tests fail. This prevents duplication of test scripts.Apart from that you will learn correct folder structure of your using BLoC and Provider with clean architecture aspect.Throughout the testing we will use BLoC & Cubit and show how to manage states during testings.
Overview
Section 1: Introduction
Lecture 1 Introduction
Section 2: Understand Dartz Type Either and Architecture Layer
Lecture 2 Create user entity
Lecture 3 Understanding object compare in dart
Lecture 4 Install dartz package and understand Either type
Lecture 5 Create failure and typedef
Lecture 6 Dart callable call function
Lecture 7 Done with domain layer usescases create user
Lecture 8 Domain layer usecases get_user
Section 3: Create and understand test
Lecture 9 Understanding testing
Lecture 10 Create test part 1
Lecture 11 Create test and done with STUB part 2
Lecture 12 Create test part 3 done with Act and Assert
Lecture 13 Create test part 4 and verify
Lecture 14 Create test part 5 and run it
Lecture 15 Create test get_users
Section 4: Data layer and test
Lecture 16 Data layer create user_model
Lecture 17 CopyWith method
Lecture 18 Test user model
Lecture 19 Read json file for user data
Lecture 20 Run test fromJson, toJson, fromMap, toMap
Lecture 21 Data layer and data source
Lecture 22 Data layer and implementation of auth repository
Section 5: Repository and authentication
Lecture 23 Authentication repository implementation
Lecture 24 Authentication repository implementation test 2
Lecture 25 Authentication repository implementation exception test 3
Lecture 26 Done test API Exception
Lecture 27 Authentication remote data source implementation test
Section 6: Http layer and test
Lecture 28 Http client and prepare test part 1
Lecture 29 Http post request 200, 201 and 400 code test
Lecture 30 Http get request test
Lecture 31 Resources not found test completed
Lecture 32 Presentation layer bloc and usecases
Section 7: Cubit package and test
Lecture 33 Cubit and usecase
Lecture 34 Cubit authentication test
Lecture 35 Cubit and bloc test pass
Lecture 36 Cubit create user pass
Lecture 37 Cubit get users test pass
Section 8: Dependency injection
Lecture 38 Inject dependencies with get_it and see the connection of all layers
Section 9: Create user and test
Lecture 39 Create the app and ui
Lecture 40 Create our first user in the app
Intermediate to advanced learners
TO MAC USERS: If RAR password doesn't work, use this archive program:
RAR Expander 0.8.5 Beta 4 and extract password protected files without error.
TO WIN USERS: If RAR password doesn't work, use this archive program:
Latest Winrar and extract password protected files without error.