build_runner does not genarate filename.g.dart Flutter

Viewed 27

I want to unit test api and I followed this tutorial to achieve it but I got a ridiculous error.

I have been struggling with this issue whole day!

Here is explanation:

I need to have mokito and also api_client.g file in my project. Whenever I try to generate mokito file with this command flutter packages pub run build_runner build --delete-conflicting-outputs the mokito class is generated but my api_client.g.dart disappears and is not regenerated.

I used to be able to genrate api_clien.g.dart file using this command:

flutter pub run build_runner build

My pubspec.yaml

name: app_store
description: A new Flutter project.

publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1

environment:
sdk: ">=2.15.1 <3.0.0"

dependencies:
flutter:
sdk: flutter

 flutter_localizations:
sdk: flutter
flutter_riverpod: ^1.0.3
cupertino_icons: ^1.0.2
shared_preferences: ^2.0.13
built_value: ^8.1.4
json_annotation: ^4.4.0
dio: ^4.0.4
package_info_plus: ^1.4.2
cached_network_image: ^3.2.0
url_launcher: ^6.0.18
intl: ^0.17.0
flutter_svg: ^1.0.3
lottie: ^1.2.1
pin_code_fields: ^7.3.0
image_cropper: ^2.0.3
image_picker: ^0.8.5+3
file_picker: ^4.6.1
device_info_plus: ^4.0.0
disk_space: ^0.2.1
flutter_rating_bar: ^4.0.1
device_apps: ^2.2.0
path_provider: 2.0.9
speech_to_text: ^5.6.0
app_installer: ^1.1.0
downloads_path_provider_28: ^0.1.2
permission_handler: ^8.3.0
mockito: ^5.3.1
build_runner: ^2.2.1
# freezed: ^2.0.3
http: ^0.13.4


flutter_lints: ^1.0.0

json_serializable: ^6.1.4
uni_links: ^0.5.1

dev_dependencies:
integration_test: 
sdk: flutter
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
generate: true
assets:
- assets/icons/
- assets/images/
- assets/animations/

fonts:
- family: iran_sans_x
  fonts:
    - asset: assets/fonts/iran_sans_x_ultra_light.otf
      weight: 100
    - asset: assets/fonts/iran_sans_x_thin.otf
      weight: 200
    - asset: assets/fonts/iran_sans_x_light.otf
      weight: 300
    - asset: assets/fonts/iran_sans_x_regular.otf
      weight: 400
    - asset: assets/fonts/iran_sans_x_medium.otf
      weight: 500
    - asset: assets/fonts/iran_sans_x_semi_bold.otf
      weight: 600
    - asset: assets/fonts/iran_sans_x_bold.otf
      weight: 700
    - asset: assets/fonts/iran_sans_x_extra_bold.otf
      weight: 800
    - asset: assets/fonts/iran_sans_x_black.otf
      weight: 900
- family: DanaFaNum
  fonts:
    - asset: assets/fonts/DanaFaNum-UltraLight.ttf
      weight: 100
    - asset: assets/fonts/DanaFaNum-Thin.ttf
      weight: 200
    - asset: assets/fonts/DanaFaNum-Light.ttf
      weight: 300
    - asset: assets/fonts/DanaFaNum-Regular.ttf
      weight: 400
    - asset: assets/fonts/DanaFaNum-Medium.ttf
      weight: 500
    - asset: assets/fonts/DanaFaNum-Bold.ttf
      weight: 600
    - asset: assets/fonts/DanaFaNum-DemiBold.ttf
      weight: 700
    - asset: assets/fonts/DanaFaNum-ExtraBold.ttf
      weight: 800
    - asset: assets/fonts/DanaFaNum-Black.ttf
      weight: 900

My Mokito class:

import 'package:app_store/data/model/responseModel/login_with_mobile_rm.dart';
import 'package:app_store/main.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:http/http.dart' as http;
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import 'api_test.mocks.dart';

final httpProvider = Provider<http.Client>((ref) {
return http.Client();
});
@GenerateMocks([http.Client])
void main() {
 testWidgets('200 response increments', (WidgetTester tester) async {
 final client = MockClient();
 when(client.get(Uri.parse('https://httpstat.us/200'))).thenAnswer(
  (value) async {
    return http.Response(LoginWithMobileRm().toJson().toString(), 200);
  },
);
await tester.pumpWidget(
  ProviderScope(
    overrides: [
      httpProvider.overrideWithValue(client),
    ],
    child: const MyApp(),
  ),
);
expect(1, 1);
});
}

My api_client:

part 'api_client.g.dart';

abstract class ApiClient {
factory ApiClient(Dio dio, AppPreferencesHelper appPreferencesHelper,
{required String baseUrl}) = _ApiClient;

Future<BaseResponseModel<LoginWithMobileRm>> mobileLogin(
Map<String, String> map,
BuildContext context,
);
0 Answers
Related