# Testing Fundamentals of Flutter [Course]

> We have some very exciting testing news to share! A few months ago, our teammate Jorge developed a comprehensive Lesson on Flutter Testing for Caster.IO.

- Source: https://verygood.ventures/blog/testing-fundamentals-of-flutter-course/
- Published: 2021-02-11
- Author: VGV Team
- Tags: Best Practices, Testing

---

We have some very exciting testing news to share! A few months ago, our teammate Jorge developed a comprehensive Lesson on Flutter Testing for Caster.IO. While Caster.IO has since ceased operations, we are very fortunate to be the new home for hosting Jorge’s Flutter testing content.

***The best part is: it’s now free!*** 

We are very excited to make this content available to the developer community because we strongly believe that testing is a crucial part of the development process. It can make or break your application—lack of tests or offloading testing to a separate development team could lead to low-quality applications and last minute scrambles to squash bugs before launch.

In contrast, integrating testing into the development process can increase confidence in your codebase and ensure that your app is able to ship at any point.

This course will provide a nice foundation for Flutter developers looking to learn the fundamentals of testing, or serve as a handy reference for more experienced developers.

We plan to release the full course in three batches over the next few weeks according to the below schedule. **You can view all of the content on this** [**YouTube playlist**](https://www.youtube.com/playlist?list=PLprI2satkVdFwpxo_bjFkCxXz5RluG8FY)**.**

## Testing Fundamentals of Flutter Tutorial Schedule

### Week 1

**Lesson 1:** [What is the difference between unit testing, widget testing, and integration testing?](https://youtu.be/M_eZg-X789w) 

**Lesson 2:** [Writing your first unit test](https://youtu.be/8yh1tuT-bwI) 

**Lesson 3:** [Running your test from the terminal](https://youtu.be/_9HWenMieGY)

**Lesson 4:** [The structure of a good test](https://youtu.be/gJhc0eHzxdU)

**Lesson 5:** [Using expect() in your tests](https://youtu.be/eBfaQRNPLAY)

**Lesson 6:** [All you need to know about Matchers](https://youtu.be/GKPIA1Auk4I)

**Lesson 7:** [Grouping your tests using the group() function](https://youtu.be/msF1FPfrAfQ)

**Lesson 8:** [Testing code that throws an Error or an Exception](https://youtu.be/ssXyBYWSrYI)

**Lesson 9:** [Sharing code between tests with setUp() and tearDown()](https://youtu.be/7NEmvBM4tp8)

### Week 2

**Lesson 10:** [Testing Futures](https://www.youtube.com/watch?v=iVsq9Y5ttbE)

**Lesson 11:** [Testing Streams](https://www.youtube.com/watch?v=c-7dXgwCtKs)

**Lesson 12:** [Writing your first widget test](https://www.youtube.com/watch?v=Ww4z9Ww29wI)

**Lesson 13:** [The difference between pumpWidget(), pump(), and pumpAndSettle()](https://www.youtube.com/watch?v=jUlqOtUaj0g)

**Lesson 14:** [Finding a widget in your widget tree using CommonFinders](https://www.youtube.com/watch?v=-gLIIyFa0X8)

**Lesson 15:** [Interacting with your widgets using WidgetTester](https://www.youtube.com/watch?v=ho_-1rwZKIQ)

**Lesson 16:** [Verifying your widget tests using a Matcher from flutter_test](https://www.youtube.com/watch?v=FXkRpa2cm20)

**Lesson 17:** [Testing smaller widgets in isolation](https://www.youtube.com/watch?v=HoTZ5CcmDiM)

### Week 3

**Lesson 18:** [Controlling the behavior of your dependencies using mockito](https://youtu.be/Vgxxb7YAU6M)

**Lesson 19:** [Stubbing synchronous methods with mockito](https://youtu.be/Q60EzlZ2CGA)

**Lesson 20:** [Stubbing asynchronous methods with mockito](https://youtu.be/tZEoQmXG_mQ)

**Lesson 21:** [Verifying interactions with mockito](https://youtu.be/CQZWc7-ljn4)

**Lesson 22:** [Using golden files to verify pixel-perfect widgets](https://youtu.be/_G6GuxJF44Q)

**Lesson 23:** [Collecting code coverage from your tests](https://youtu.be/xEFAiE0IB34)

**Lesson 24:** [Running integration tests with flutter_driver](https://youtu.be/HEovdrFCJUA)

**Lesson 25:** [Taking automated screenshots of your application](https://youtu.be/cx_KJWZvLC8)

**Lesson 26:** [Running your tests on GitHub Actions](https://youtu.be/JQxuQDqfIMg)

**Lesson 27:** [Using Codemagic for your CI/CD needs](https://youtu.be/n2EsTRz1RZw)

### Ready to learn more? [**Read our Very Good Guide to Flutter Testing.**](https://verygood.ventures/blog/guide-to-flutter-testing/)
