mirror of
https://github.com/rrousselGit/riverpod.git
synced 2025-08-15 10:11:27 +08:00
59 lines
1.9 KiB
Dart
59 lines
1.9 KiB
Dart
// ignore_for_file: unused_local_variable
|
|
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
import 'full_widget_test.dart';
|
|
import 'provider_to_mock/raw.dart';
|
|
|
|
void main() {
|
|
testWidgets('Some description', (tester) async {
|
|
await tester.pumpWidget(
|
|
const ProviderScope(child: YourWidgetYouWantToTest()),
|
|
);
|
|
/* SNIPPET START */
|
|
// {@template container}
|
|
// In unit tests, by reusing our previous "createContainer" utility.
|
|
// {@endtemplate}
|
|
final container = ProviderContainer.test(
|
|
// {@template providers}
|
|
// We can specify a list of providers to mock:
|
|
// {@endtemplate}
|
|
overrides: [
|
|
// {@template exampleProvider}
|
|
// In this case, we are mocking "exampleProvider".
|
|
// {@endtemplate}
|
|
exampleProvider.overrideWith((ref) {
|
|
// {@template note}
|
|
// This function is the typical initialization function of a provider.
|
|
// This is where you normally call "ref.watch" and return the initial state.
|
|
|
|
// Let's replace the default "Hello world" with a custom value.
|
|
// Then, interacting with `exampleProvider` will return this value.
|
|
// {@endtemplate}
|
|
return 'Hello from tests';
|
|
}),
|
|
],
|
|
);
|
|
|
|
// {@template providerScope}
|
|
// We can also do the same thing in widget tests using ProviderScope:
|
|
// {@endtemplate}
|
|
await tester.pumpWidget(
|
|
ProviderScope(
|
|
// {@template overrides}
|
|
// ProviderScopes have the exact same "overrides" parameter
|
|
// {@endtemplate}
|
|
overrides: [
|
|
// {@template sameAsBefore}
|
|
// Same as before
|
|
// {@endtemplate}
|
|
exampleProvider.overrideWith((ref) => 'Hello from tests'),
|
|
],
|
|
child: const YourWidgetYouWantToTest(),
|
|
),
|
|
);
|
|
/* SNIPPET END */
|
|
});
|
|
}
|