4

Given I have a Repository:

class Repository {
 final DataSource dataSource;
 Repsoitory(this.dataSource);
}

and a DataSource:

class DataSource {
  final Dio dio;
  DataSource(this.dio);
}

and I would like to initialize Dio with these BaseOptions:

final baseOptions = BaseOptions(
  baseUrl: "https://myapi.com",
);

How would I do this using RepositoryProvider?

What I often saw was using something like this:

class App extends StatelessWidget {
  final Repository repository;
  App(this.repository);

  build(BuildContext context){
    return RepositoryProvider.value(
      value: repository,
    );
  }
}

and in main:

main(){
 final baseOptions = BaseOptions(...);
 final dio = Dio(baseOptions);
 final repository = Repository(dio);

 runApp(App(repository));
}

But this does not allow for baseOptions or dio to be easily mocked.

Any ideas?

Stefan Galler
  • 781
  • 4
  • 12

0 Answers0