dart-generate-test-mocks は何をしますか?
package:mockito と build_runner を使って外部依存関係のモックオブジェクトを定義・生成します。APIやデータベースなどの複雑な外部サービスに依存するクラスの単体テストで使用します。
使用方法
- プロジェクトに依存関係を追加します:
dev_dependencies:
build_runner: ^2.0.0
mockito: ^5.0.0
- テストファイルでモックを定義します:
import 'package:mockito/annotations.dart';
import 'package:my_app/services/api_service.dart';
@GenerateNiceMocks([MockSpec<ApiService>()])
void main() {}
- モックを生成します:
dart run build_runner build
- 生成されたモックをテストで使用します:
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'mocks.dart';
void main() {
late MockApiService mockApiService;
setUp(() {
mockApiService = MockApiService();
});
test('データを正常に取得できる', () async {
when(mockApiService.fetchData()).thenAnswer((_) async => 'テストデータ');
expect(await mockApiService.fetchData(), 'テストデータ');
});
}