一键导入
testing-flutter
Testing Flutter 3.44 / BLoC v9 / Riverpod 3 - Stratégie Complète. Use when writing tests, reviewing test coverage, or setting up testing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Testing Flutter 3.44 / BLoC v9 / Riverpod 3 - Stratégie Complète. Use when writing tests, reviewing test coverage, or setting up testing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Docker & Hadolint validation (2026). Use when working with Docker, containers, or validating Dockerfiles.
Security guidelines and OWASP Top 10. Use when reviewing security, implementing authentication or authorization, hardening code, or discussing vulnerabilities.
Third-party Claude Code token/context/code-review tools. Use when choosing or recommending an external tool to reduce token usage, manage context, or review large codebases (caveman, code-review-graph, token-savior, context-mode...).
Third-party Claude Code token/context/code-review tools. Use when choosing or recommending an external tool to reduce token usage, manage context, or review large codebases.
Testing React Native 0.85+. Use when writing tests, reviewing test coverage, or setting up testing.
Stratégie de Tests Symfony 8.1 / PHP 8.5. Use when writing tests, reviewing test coverage, or setting up testing.
| 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 |
Versions : Flutter 3.44+ | Dart 3.12+ | BLoC v9 | Riverpod 3.0
// pubspec.yaml
dev_dependencies:
bloc_test: ^10.0.0
mocktail: ^1.0.0
// Test avec emit.isMounted 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 isMounted (v9)
verify(() => mockUseCase.call('123')).called(1);
},
);
// 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
This skill provides guidelines and best practices.
See ../../rules/07-testing-flutter.md for detailed documentation.