Flutter: Deep Dive with Widget Tests and Mockito

In this video I cover widget tests in depth.

This will give you a solid understanding about testing in Flutter, so that you can ensure your widgets behave as expected.

This is based on my Firebase authentication demo, which I have covered in my previous videos.

Highlights

  • Overview of Widget tests: what they are and what they are used for
  • Widget tests in the Flutter Sample Demo App: WidgetTester, Finder, and matcher objects explained
  • Explanation of WidgetTester.pump().
  • How to write Widget tests for a login screen
  • Resolving problems with MediaQuery
  • Introduction to test mocks, and how to write one
  • Introduction to mockito as a powerful tool to mock objects
  • From Acceptance Criteria to Widget Tests, in detail
  • Finding widgets by key
  • Write expectations with mockito
  • Detecting callbacks
  • How to enter text into a widget
  • Use mocks to return values and throw errors
  • Wrap up

Notes:

  • I'm using the iOS simulator, but you can open the Android emulator and run the same code.
  • To run the code on the demo, follow the instructions on the project README file to setup your own Firebase instance.

This code was written with Flutter Beta 0.5.1, and is tested to work with Dart 2.

Want More?

Invest in yourself with my high-quality Flutter courses.

Flutter Foundations Course

Flutter Foundations Course

Learn about State Management, App Architecture, Navigation, Testing, and much more by building a Flutter eCommerce app on iOS, Android, and web.

Flutter & Firebase Masterclass

Flutter & Firebase Masterclass

Learn about Firebase Auth, Cloud Firestore, Cloud Functions, Stripe payments, and much more by building a full-stack eCommerce app with Flutter & Firebase.

The Complete Dart Developer Guide

The Complete Dart Developer Guide

Learn Dart Programming in depth. Includes: basic to advanced topics, exercises, and projects. Fully updated to Dart 2.15.

Flutter Animations Masterclass

Flutter Animations Masterclass

Master Flutter animations and build a completely custom habit tracking application.