Modern and elegant test framework for Flutter, inspired by Cypress

Overview

flutter_modern_test: Modern, elegant and productive test framework for Flutter, inspired by Cypress

GitHub: https://github.com/fzyzcjy/flutter_modern_test

Why?

Writing tests should be as easy as speaking to a human being about what is expected to happen. No extra care and code should be made for anything else.

Features

  • Human-readable GUI for reviewing and debugging: See the video below.
  • Test recording and time-traveling: Look at screenshots of any step of the test. Easily figure out what is happening. Make debugging much easier (at least for me).
  • Robust with retry-ability: Integration tests are fragile and easy to fail. Now, the retry-ability (explanation in Cypress) will automatically retry and make it much more robust.
  • Planned: Other features that Cypress has: Take a look at their website.

Video demo

Before I record video of flutter_modern_test (since I am not sure whether people are interested in this lib, I do not spend much time on writing readme), please watch this Cypress video and imagine the counterpart...

## Finding co-authors

I have long been wishing that Flutter could have a testing framework as productive as Cypress in JavaScript; but with a long wait there is still none yet. So I write one (many thanks for Cypress's inspiration!).

Obviously, the rich features of Cypress itself are not made by one programmer. Even if I have made the core functionality for this library, there are still many features to add. If you are interested, please contact me (maybe via GitHub issues)!

Example

Code looks like:

tTestWidgets('test one', (t) async {
  // tap, drag, ... anything you like
  await t.get('load_data_button').tap();
  
  // With retry-ability, no need to wait for data to be loaded or retry.
  await t.get('My Title').should(findsOneWidget);
  
  // some other examples
  await t.logout();
  await t.routeName().shouldEquals('/create_chat');
});

UI looks like: (See that video above)

Status

I have used it internally for my app (in production) and it worked well. But to make it a great open-source project, work is still needed.

The current code repository lacks some trivial internal library dependencies, but of course I will port them here soon.

You might also like...

Modern crypto portfolio & market explorer. Built with @Flutter

Modern crypto portfolio & market explorer. Built with @Flutter

Trace Modern Crypto Portfolio & Market Explorer. Built with Flutter. Open Source. Lightweight. Clean. Straightforward. Fast. Powerful. Download for An

Jan 1, 2023

A simple, modern AppImageHub Client, powered by flutter.

A simple, modern AppImageHub Client, powered by flutter.

AppImagePool Simple AppImageHub Client Main Features FLOSS and non profit app Simple categories Download from github directly, no extra-server involve

Jan 1, 2023

a modern games app UI made with flutter

a modern games app UI made with flutter

games_mix A game app UI made using flutter. Inspiration https://github.com/developedbyed/glass-website Screenshot Support If you like what we do, and

Oct 14, 2021

A modern voice chat application. The project has been written solely in Dart Language.

A modern voice chat application. The project has been written solely in Dart Language.

VChat A modern voice chat application. The application welcomes the user with the login screen. After a simple registration process, an empty "Home" s

Aug 18, 2022

Modern UI for WPF

Modern UI for WPF (MUI) A set of controls and styles converting your WPF application into a great looking Modern UI app. This open source project is a

Dec 25, 2022

A modern application to track your visitors at public places

A modern application to track your visitors at public places

VisitorTracker A modern application to track your visitors at public places! Exp

Dec 25, 2021

A study about clean architecture and TDD(Test Driven Development) in Flutter.

coin_checker A study about clean architecture and TDD(Test Driven Development) in Flutter. Getting Started This project is a starting point for a Flut

Jan 25, 2022

Tooling and libraries for processing dart test output into dev-friendly formats

better_test_reporter Introduction This is an application/library heavily inspired by dart-junitreport and dart-testreport. It takes what was done in t

Sep 14, 2022
Comments
  • How to contribute?

    How to contribute?

    This is something very cool and lacking. Would love to make some contribution to this, can we have contributors' guide, steps to contribute and a few issues. Maybe people will see it and come around.

    Thanks

    opened by Rohithgilla12 4
Owner
fzyzcjy
"Hello, world!\n"
fzyzcjy
Arisshopuiiesm - Build a clean and elegant Shop UI design for your Flutter app

Flutter Tutorial - 2/3 Shop UI - From Scratch We will build a clean and elegant

Behruz Hurramov 3 Oct 29, 2022
🎵 Elegant music app to play local music & YouTube music. Distributes music into albums & artists. Has playlists & lyrics.

Harmonoid Elegant music app to play local music & YouTube music. Download Now ?? Feel free to report bugs & issues. We'll be there to fix. Loving the

Harmonoid 2.5k Dec 30, 2022
An elegant todo app with some advanced features.

?? An Elegant "Todopad" Made With Flutter ?? ?? Star ?? the repo if you like it This is a todo app with local backup and restore functionality made wi

Sourav Kumar Suman 69 Jan 1, 2023
🎵 Elegant music app to play local music & YouTube music. Distributes music into albums & artists. Has playlists & lyrics. Windows + Linux + Android.

Harmonoid Elegant music app to play local music & YouTube music. Download Now ?? Windows, Linux & Android. Feel free to report bugs & issues. Loving t

Harmonoid 1.9k Aug 10, 2022
Simple and modern news app that incorporates REST API (newsapi.org), all built entirely with Flutter.

A simple news app with a minimalistic and clean UI that incorporates the newsapi.org api all built entirely with Flutter. Be sure to leave a star ??

Carlton Aikins 73 Dec 1, 2022
A clean and modern note taking app built with Flutter.

Notes App A clean, simple and modern note taking app built with Flutter. Be sure to leave a star ?? Features Create notes: Create notes that store loc

Carlton Aikins 111 Dec 31, 2022
Modern UI for Messaging/Chatting App, with Signup/Login Pages and Awesome animation, built with flutter v2.5.2.

instantChat_app_ui Modern UI for Messaging/Chatting App, with Signup/Login Pages and Awesome animation, built with flutter v2.5.2. The package/plugin

Kamran Jalil 1 Oct 25, 2021
Amazing task management application with fluid, minimal and modern UI using Flutter! One of The Winner Apps for Google DevFest 2021!

Orb "Let your task orbit!" ?? Description Orb is an easy-to-use task manager app that help you manage your daily struggles to get your things done eff

Tom Huynh 9 Oct 28, 2022
Nakama is an open-source server designed to power modern games and apps

Nakama is an open-source server designed to power modern games and apps. Features include user accounts, chat, social, matchmaker, realtime multiplayer, and much more.

Allan Nava 85 Dec 30, 2022
A full, sound, modern and documented JS interop for Dart.

This is (or should be) a full JavaScript interop package using package:js bindings. The bindings are generated by machine-reading WebIDL files for typ

Jonathan Rezende 36 Dec 15, 2022