ohos-test-graphics3d-static-api-unit-test について
OpenHarmony GTest フレームワークで ETS/ArkTS の静的 API をユニットテストするためのガイドです。ラッパークラスのテスト向けに、命名規則、必須注釈、Arrange-Act-Assert パターンを示します。
主な機能
- 01テストクラス・ケース・ファイルの命名規則
- 02HWTEST_F マクロの使用指針
- 03必須のテスト注釈
- 04Arrange-Act-Assert テストパターン
- 05BUILD.gn へのソース登録手順
活用シーン
- 01新しい ETS ラッパークラスのテスト
- 02既存 API テストへのシナリオ追加
- 03テストモジュールや環境の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openharmonyinsight/ openharmony-skills --skill ohos-test-graphics3d-static-api-unit-testインストール後、Claude Code で/ohos-test-graphics3d-static-api-unit-testを入力して読み込まれたか確認します。
同梱ファイルREADME.mdreferences/UNITTEST_GUIDE.md
詳細
Graphics 3D API ユニットテストジェネレーター
概要
OpenHarmony GTest フレームワークに基づいて、ETS/ArkTS の静的 API ユニットテストを生成するためのガイドです。テスト生成ワークフロー、命名規則、基本的なパターンを説明します。
使用する場面
- 新しい ETS ラッパークラス(例:
CameraETS、MaterialETS)のユニットテストを追加する場合 - 新しいテストシナリオを既存のテストケースに追加する場合
- 新しいテストモジュールまたはテスト環境を設定する場合
使用しない場面:
- Lume エンジンのコアレイヤーをテストする場合(他のテストフレームワークを使用してください)
- 統合テストやパフォーマンステストを作成する場合(異なるフィクスチャが必要です)
クイックリファレンス
命名規則
| 要素 | 規則 | 例 |
|---|---|---|
| テストクラス名 | <Module>ETSUnitTest | MaterialETSUnitTest |
| テストケース名 | <Class>_<Method>_<Number> | MaterialETS_Create_001 |
| テストファイル名 | <module>_ets_unit_test.cpp | material_ets_unit_test.cpp |
テストマクロ
| マクロ | 用途 |
|---|---|
HWTEST_F | 固定テストフィクスチャ(すべての ETS ユニットテストで必須) |
テストレベル:テストの複雑さに応じて適切な TestSize.Level0-Level4 を使用してください。
選択ルール
- デフォルト:ほとんどの API メソッドテストでは
TestSize.Level1を使用します - 調整:複雑なシナリオ(エラー処理、パフォーマンス)では、より高いレベルを使用してください
Level0-Level4 の定義については、UNITTEST_GUIDE.md の「Test Case Macros」セクションを参照してください。
必須コメントテンプレート
/**
* @tc.name: <TestCaseName>
* @tc.desc: <Description>
* @tc.type: FUNC / PERF
*/
基本パターン:AAA テスト
Arrange-Act-Assert パターンを使用します。
/**
* @tc.name: MaterialETS_Create_001
* @tc.desc: Test MaterialETS creation and initialization
* @tc.type: FUNC
*/
HWTEST_F(MaterialETSUnitTest, MaterialETS_Create_001, TestSize.Level1)
{
auto material = std::make_shared<MaterialETS>();
EXPECT_TRUE(material->IsValid()); // EtsTest provides engine context automatically
}
実装ワークフロー
- テストファイルを作成する:
api_unit_test/<module>_ets_unit_test.cpp - テストケースを記述する:必須のアノテーションとともに AAA パターンを使用します
- BUILD.gn を更新する:
sourcesリストにファイルを追加します
実装の詳細:UNITTEST_GUIDE.md では、以下について説明しています。
- EtsTest フィクスチャクラスの実装
- BUILD.gn の完全なテンプレート
- 環境設定とビルドコマンド
- エラー処理の例
読み込みガイドについては、以下の「参照資料を読み込むタイミング」セクションを参照してください。
参照資料を読み込むタイミング
✅ 次の場合は UNITTEST_GUIDE.md を読み込みます:
- 新しいテストモジュールを設定する場合(初回の設定)
- クラスの最初のテストを記述する場合(ワークフロー全体が必要)
- BUILD.gn の完全なテンプレートが必要な場合(コピーしてすぐに使えます)
- ビルド/実行エラーのトラブルシューティングを行う場合(詳しい解決方法が必要)
- EtsTest フィクスチャの詳細が必要な場合(エンジンのライフサイクルを理解するため)
❌ 次の場合は読み込まないでください:
- テストをすぐに生成する場合(SKILL.md のクイックリファレンスで十分です)
- 簡単な命名に関する質問(規則は SKILL.md に記載されています)
- 慣れたシナリオの場合(標準的なパターンがわかっている場合)
- クイックリファレンスの表だけが必要な場合(詳しい説明は不要です)
ルール:まず SKILL.md を確認してください。行き詰まった場合、または新しい環境を設定する場合にのみ UNITTEST_GUIDE.md を読み込みます。
リンク:UNITTEST_GUIDE.md(上記の条件に該当する場合にのみ読み込みます)
よくある間違い
| 問題 | 解決方法 |
|---|---|
| ヘッダーが見つからない | BUILD.gn の include_dirs を確認します |
| ライブラリが見つからない | libAGPDLL.z.so が配置されていることを確認します |
| テストが干渉する | 分離のために SetUp/TearDown を使用します |
絶対にしてはいけないこと
| ❌ 誤り | ✅ 正しい方法 | 理由 |
|---|---|---|
MaterialETS_Test | MaterialETSUnitTest | OpenHarmony では UnitTest の接尾辞が必要です |
MaterialETS_Create | MaterialETS_Create_001 | テスト名には _Number の接尾辞を含める必要があります |
@tc.name を省略する | 常にアノテーションを追加する | テストレポートの生成に必要です |
| GTest マクロを直接使用する | HWTEST_F マクロを使用する | OpenHarmony テストフレームワークで必要です |
| アノテーションなしでテストを記述する | 完全なアノテーションブロックを含める | アノテーションがないとテストの検出に失敗します |
実際の効果
このスキルに従って生成されたテストは、以下の特長があります。
- OpenHarmony のテスト標準に準拠します
- エンジンのライフサイクル管理を自動化します
- 完全なリソースクリーンアップ機構を備えています
参照資料
| ドキュメント | 説明 |
|---|---|
| UNITTEST_GUIDE.md | BUILD.gn の完全なテンプレート、EtsTest 基底クラス、環境設定 |