🍷
【Flutter】null safety対応版のMockitoの使い方
モックライブラリのmockitoが、バージョン5.0.0
でDartのnull safetyに対応しました🎉これにともない、Mockitoの使い方が従来と少し変わったのでメモしておきます。
null safety対応以前と何が変わったか?
null safety対応版はモッククラスを自動生成して使うようになりました。
ここからは、具体的なコードの変更点をご紹介します。
まずは、コード生成のためのbuild_runner
パッケージをpubspec.yaml
に追加します。
pubspec.yaml
dev_dependencies:
flutter_test:
sdk: flutter
mockito: ^5.0.0
+ build_runner:
続いて、テストクラスの変更を行います。@GenerateMocks
を使ってモック化したいクラスを定義します。以下の例だとCat
クラスだけモック化していますが、@GenerateMocks([Cat, Dog, Bird])
のように複数クラスをまとめてモック化することもできます。
- class MockCat extends Mock implements Cat {}
// モッククラスを自動生成するためのアノテーション
+ ([Cat])
void main() {
var cat = MockCat(); // 一時的にコンパイルエラーになる
}
この状態だと、モッククラスはまだ生成されていないのでコンパイルエラーになりますが、気にしないでください。続いて、以下コマンドでモッククラスを自動生成します。
$ flutter pub run build_runner build
あとは、自動生成されたモッククラスをインポートしてやればOKです。
// 自動生成されるモッククラスをインポートする
+ import 'cat.mocks.dart';
([Cat])
void main() {
var cat = MockCat(); // コンパイルエラーが解消される
}
以降は、これまでのMockitoの使い方と同じです。
Discussion