cpp-testing

Solid

C++ テストの作成/更新/修正、GoogleTest/CTest の設定、失敗またはフレーキーなテストの診断、カバレッジ/サニタイザーの追加時にのみ使用します。

Testing & QA 196,640 stars 30253 forks Updated 2 days ago MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# C++ Testing(エージェントスキル) CMake/CTest を使用した GoogleTest/GoogleMock による最新の C++(C++17/20)向けのエージェント重視のテストワークフローです。 ## 使用タイミング - 新しい C++ テストの作成または既存のテストの修正 - C++ コンポーネントのユニット/統合テストカバレッジの設計 - テストカバレッジ、CI ゲーティング、リグレッション保護の追加 - 一貫した実行のための CMake/CTest ワークフローの設定 - テスト失敗またはフレーキーな動作の調査 - メモリ/レース診断のためのサニタイザーの有効化 ### 使用すべきでない場合 - テスト変更を伴わない新しい製品機能の実装 - テストカバレッジや失敗に関連しない大規模なリファクタリング - 検証するテストリグレッションのないパフォーマンスチューニング - C++ 以外のプロジェクトまたはテスト以外のタスク ## コア概念 - **TDD ループ**: red → green → refactor(テスト優先、最小限の修正、その後クリーンアップ) - **分離**: グローバル状態よりも依存性注入とフェイクを優先 - **テストレイアウト**: `tests/unit`、`tests/integration`、`tests/testdata` - **モック vs フェイク**: 相互作用にはモック、ステートフルな動作にはフェイク - **CTest ディスカバリー**: 安定したテストディスカバリーのために `gtest_discover_tests()` を使用 - **CI シグナル**: 最初にサブセットを実行し、次に `--output-on-failure` でフルスイートを実行 ## TDD ワークフロー RED → GREEN → REFACTOR ループに従います: 1. **RED**: 新しい動作をキャプチャする失敗するテストを書く 2. **GREEN**: 合格する最小限の変更を実装する 3. **REFACTOR**: テストがグリーンのままクリーンアップする ```cpp // tests/add_test.cpp #include <gtest/gtest.h> int Add(int a, int b); // プロダクションコードによって提供されます。 TEST(AddTest, AddsTwoNumbers) { // RED EXPECT_EQ(Add(2, 3), 5); } // src/add.cpp int Add(int a, int b) { // GREEN return a + b; } // REFACTOR: テストが合格したら簡素化/名前変更 ``` ## コード例 ### 基本的なユニットテスト(gtest) ```cpp // tests/calculator_test.cpp #include <gtest/gtest.h> int Add(int a, int b); // プロダクションコードによって提供されます。 TEST(CalculatorTest, AddsTwoNumbers) { EXPECT_EQ(Add(2, 3), 5); } ``` ### フィクスチャ(gtest) ```cpp // tests/user_store_test.cpp // 擬似コード...

Details

Author
affaan-m
Repository
affaan-m/everything-claude-code
Created
4 months ago
Last Updated
2 days ago
Language
JavaScript
License
MIT

Integrates with

Related Skills