用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/linnefromice/flutter_recipe_app --skill tdd-workflow命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | tdd-workflow |
| description | Flutter/Dart のTDDワークフロー。RED→GREEN→REFACTOR サイクルでテストファーストな実装を行う。新機能追加・バグ修正時に使用。 |
Flutter/Dart プロジェクトでのテスト駆動開発ワークフロー。
[役割]として、[アクション]したい、それにより[メリット]を得る
例:
ユーザーとして、特定の材料量を入力したい、
それにより他の材料が比例計算されて表示される。
import 'package:flutter_test/flutter_test.dart';
void main() {
group('RecipeCalculator.recalculate', () {
test('scales all ingredients proportionally', () {
// Arrange
final ingredients = [...];
// Act
final result = RecipeCalculator.recalculate(
ingredients: ingredients,
changedIngredientId: changedId,
newValue: newValue,
);
// Assert
expect(result[0].currentAmount, equals(expectedValue));
});
test('guards against zero baseAmount', () {
// ゼロ除算のガードをテスト
});
});
}
flutter test test/services/recipe_calculator_test.dart
# → 失敗するはず
テストを通す最小限のコードを書く。
flutter test test/services/recipe_calculator_test.dart
# → パスするはず
テストがグリーンのまま:
flutter test --coverage
# 80% 以上を確認
late ProviderContainer container;
setUp(() {
container = ProviderContainer(overrides: [
storageServiceProvider.overrideWithValue(mockStorage),
]);
addTearDown(container.dispose);
});
testWidgets('renders recipe list', (tester) async {
await tester.pumpWidget(
ProviderScope(
overrides: [...],
child: const MaterialApp(home: RecipeListScreen()),
),
);
await tester.pumpAndSettle();
expect(find.byType(ListTile), findsWidgets);
});
flutter analyze でエラーなし