关于 testing-flutter
为 Flutter 与 Dart 项目提供测试指南,面向使用 BLoC 或 Riverpod 的开发者。内容包含 BLoC v9 和 Riverpod 3.0 的测试模式与示例。
主要功能
- 01BLoC v9 的 bloc_test 模式
- 02Riverpod 3.0 Mutation 测试
- 03提供测试最佳实践指南
适用场景
- 01测试 BLoC 状态与事件
- 02验证 Riverpod Mutation 更新状态
- 03制定 Flutter 项目的测试方案
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thebeardedbearsas/ claude-craft --skill testing-flutter安装后在 Claude Code 中输入/testing-flutter确认已加载。
详细介绍
测试 Flutter 3.44+ - 完整策略
版本: Flutter 3.44+ | Dart 3.12+ | BLoC v9 | Riverpod 3.0
2026 年测试模式
使用 bloc_test 测试 BLoC v9
// 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 测试
// 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();
});
来源: Riverpod 3.0 测试
此技能提供指南和最佳实践。
详细文档请参阅 ../../rules/07-testing-flutter.md。
评论
支持 Markdown