Loading...
Loading...
Test Riverpod providers and widgets; ProviderContainer.test, unit tests, widget tests with ProviderScope, tester.container(), mocking with overrides, container.listen for auto-dispose, awaiting .future. Use when writing unit or widget tests for Riverpod code, mocking providers, or testing with overrides. Use this skill when the user asks about testing Riverpod, mocking providers, or ProviderContainer in tests.
npx skill4agent add serverpod/skills-registry riverpod-testingvoid main() {
test('Some description', () {
final container = ProviderContainer.test();
expect(container.read(provider), equals('some value'));
});
}final subscription = container.listen<String>(provider, (_, _) {});
expect(subscription.read(), 'Some value');testWidgets('Some description', (tester) async {
await tester.pumpWidget(
const ProviderScope(child: YourWidgetYouWantToTest()),
);
});final container = tester.container();
expect(container.read(provider), 'some value');final container = ProviderContainer.test(
overrides: [
exampleProvider.overrideWith((ref) => 'Hello from tests'),
],
);
// Or in widget tests:
await tester.pumpWidget(
ProviderScope(
overrides: [exampleProvider.overrideWith((ref) => 'Hello from tests')],
child: const YourWidgetYouWantToTest(),
),
);await expectLater(
container.read(provider.future),
completion('some value'),
);