Skip to content
Back to skills

Testing Flutter

ASecurity

Testing Flutter 3.44 / BLoC v9 / Riverpod 3 - Stratégie Complète. Use when writing tests, reviewing test coverage, or setting up testing.

  • 105 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 5, 2026
ai-agentstestingapidocumentation

Works with

  • api

Security analysis

A100/100

Scanned September 5, 2026

npx -y skills add TheBeardedBearSAS/claude-craft --skill testing-flutter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Testing Flutter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Testing Flutter
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thebeardedbearsas-testing-flutter-claude-craft/badge)](https://www.skillsdirectory.com/skills/thebeardedbearsas-testing-flutter-claude-craft)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: testing-flutter
description: Testing Flutter 3.44 / BLoC v9 / Riverpod 3 - Stratégie Complète. Use when writing tests, reviewing test coverage, or setting up testing.
context: fork
---

# Testing Flutter 3.44+ - Stratégie Complète

**Versions :** Flutter 3.44+ | Dart 3.12+ | BLoC v9 | Riverpod 3.0

## Patterns de test 2026

### BLoC v9 Tests avec bloc_test

```dart
// pubspec.yaml
dev_dependencies:
  bloc_test: ^10.0.0
  mocktail: ^1.0.0

// Test avec emit.isDone checks (BLoC v9)
blocTest<UserBloc, UserState>(
  'emits [loading, loaded] when FetchUser is added',
  build: () {
    when(() => mockUseCase.call('123'))
        .thenAnswer((_) async => User(id: '123', name: 'Alice'));
    return UserBloc(getUserUseCase: mockUseCase);
  },
  act: (bloc) => bloc.add(const FetchUser('123')),
  expect: () => [
    const UserState(status: UserStatus.loading),
    const UserState(status: UserStatus.loaded, user: User(id: '123', name: 'Alice')),
  ],
  verify: (bloc) {
    // Vérifier que le bloc respecte isDone (v9)
    verify(() => mockUseCase.call('123')).called(1);
  },
);
```

### Riverpod 3.0 Mutations Tests

```dart
// Test Riverpod 3.0 Mutations API
test('Mutation updates state correctly', () async {
  final container = ProviderContainer();
  
  // Initial state
  final notifier = container.read(orderNotifierProvider('123').notifier);
  expect(container.read(orderNotifierProvider('123')).value?.id, '123');
  
  // Mutation
  await notifier.updateOrder(Order(id: '123', name: 'Updated'));
  
  // Verify state après mutation
  expect(
    container.read(orderNotifierProvider('123')).value?.name,
    'Updated',
  );
  
  container.dispose();
});
```

**Source :** [Riverpod 3.0 Testing](https://medium.com/@lee645521797/flutter-riverpod-3-0-released-a-major-redesign-of-the-state-management-framework-f7e31f19b179)

---

This skill provides guidelines and best practices.

See ../../rules/07-testing-flutter.md for detailed documentation.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…