🐙
Flutterの自動テスト Step3 〜Parameterized Testにする〜
Flutter 自動テスト シリーズについて
Flutterの自動テストをStep by Stepで説明しています。
一連の記事を「本」(無料)にまとめました。
Parameterized Testとは
ここまででも多くのテストをできるようになったのですが、
コピペでコードをどんどん増やすのはイマイチです。
そこで、共通のコードはしっかり共有して、
入力値と期待値だけ量産するスタイルのことです。
Parameterized testにしてみる
前回の記事で作成したテストをParameterized testにしてみましょう。
group('getLatestSunday', () {
<DateTime, DateTime>{
DateTime(2022, 6, 21): DateTime(2022, 6, 19),
DateTime(2022, 6, 26): DateTime(2022, 6, 26),
DateTime(2022, 6, 27): DateTime(2022, 6, 26),
DateTime(2022, 6, 25): DateTime(2022, 6, 19),
}.forEach((initialTime, expected) {
test('initialTime: $initialTime => expected: $expected', () {
fakeAsync(initialTime: initialTime, (_) {
expect(getLatestSunday(), expected);
});
});
});
});
test部分が共通にすることができました。
このようにすることで、入力値と期待値のセットをたくさん用意することが簡単になります。
動作するコードはこちら
最後に(宣伝)
友人と個人開発でゲーミフィケーション記録アプリ「HibaQuest」を作っています。
よければお試しください。
上記のコードはこのアプリのテストでも実際に使われています。
Discussion