In this episode, my guest is Nils Reichardt. Nils is a 20-year-old developer and entrepreneur from Germany.

I reached out to Nils and invited him to talk about his experience with integrations test, Firebase Test Lab with Flutter, and GitHub Actions.

Nils shared his current testing approach that is a mixture of different testing methods, such as unit tests, widget tests, golden tests, and integration tests. We discussed the advantages and disadvantages of the different approaches. For complex business logic, unit tests are great, they are fast and easy to maintain. With widget tests, you can verify the structure and behavior of your Flutter widgets, with golden tests, you can check the appearance of your widgets. Integration tests give you the highest confidence that your app actually works the way you want to, but they run slowly, they are expensive and hard to maintain.

Firebase Test Lab is a cloud-based app testing infrastructure that lets you test your app on a range of devices and configurations, so you can get a better idea of how it'll perform in the hands of live users. With it, you can test both Android and iOS apps.

Nils integrated Firebase Test Lab into their pipeline with GitHub Actions, so that after a merge, he and his team could verify that the most important functionalities of their app work perfectly.

Guest: Nils Reichardt

Twitter @nilsreichardtGitHub @nilsreichardtLinkedIn @nilsreichardtSharezone App sharezone.net/appGatch gatch.fun

Host: Vince Varga

Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

Most relevant past episodes from Flutter 101

Codemagic with CEO Martin Jeret (Episode 2): We talked to Martin Jeret about Codemagic, CI/CD for mobile apps, and other challenges Flutter developers face.Flutter by Example with Eric Windmill (Episode 1): I talked to Eric Windmill. Eric is the author of Flutter by Example, and Flutter in Action books.Dart Language Evolution with Vince Varga (Episode 9): We went through the most important changes to the Dart language. Sound type system, spread operator, collection if and for, extension methods, null safety, and type aliases.

Other resources

Flutter Documentation: Testing Flutter appsFlutter Documentation: Integration testingFlutter Documentation Cookbook: An introduction to integration testingFirebase Documentation: Firebase Test LabNils Reichardt's tweet about integration tests

 

Twitter Mentions