汎用ソフトウェア開発⭐ リポ 4品質スコア 66/100
testing
テストの作成またはリファクタリングが必要な場合に使用します。JUnit 4、Robolectric、androidTest、命名規則、MockWebServer、JaCoCoに対応しています。
description の原文を見る
Use when writing or refactoring tests – JUnit 4, Robolectric, androidTest, naming, MockWebServer, JaCoCo
SKILL.md 本文
Testing – Contentstack Android CDA SDK
Android CDA SDK でテストを追加またはリファクタリングする際に、このスキルを使用します。
使用時機
- 新しいユニットテストまたはインストルメンテーションテストを作成する。
- テストレイアウト、ベースクラス、またはテストユーティリティをリファクタリングする。
- テスト設定(例:タイムアウト、Robolectric、JaCoCo)またはカバレッジを調整する。
手順
JUnit 4 とレイアウト
- JUnit 4(junit:junit)を使用します。依存関係は
contentstack/build.gradleにあります。 - ユニットテスト: クラス名は
Testで始まるようにしてください(例:TestEntry、TestStack)。contentstack/src/test/java/com/contentstack/sdk/に配置します。 - インストルメンテーションテスト:
contentstack/src/androidTest/java/com/contentstack/sdk/に配置します。AndroidJUnitRunner を使用します。命名は既存のスタイルに従うことができます(例:*TestCase)。
Robolectric とユニットテスト
- Robolectric は JVM 上で Android コンテキストを提供します。テストが
Contextを必要とする場合に使用します(例:Contentstack.stack(context, ...))。 - ユニットテストで HTTP をモック化する場合、SDK が OkHttp/Retrofit を使用する場所では OkHttp MockWebServer を使用します。必要に応じて Volley/CSHttpConnection をモック化またはスタブ化します。
インストルメンテーションテストと認証情報
- BuildConfig: インストルメンテーションテストは
local.propertiesからBuildConfigフィールド(APIKey、deliveryToken、environment、host)を使用できます(contentstack/build.gradleを参照)。実際の認証情報をコミットしないでください。必要な変数を文書化します。 - プロジェクトで AndroidX Test と Espresso を使用します。フレーキーなテスト(タイムアウト、必要に応じて IdlingResource)を避けます。
命名と構造
- 可能な限り、プロダクションクラスごとに 1 つのテストクラスを作成します(例:
Entryに対してTestEntry)。 - テストを決定的で読みやすく保ちます。大きなセットアップブロックより、意味のあるアサーションを優先します。
カバレッジと実行
- JaCoCo は
contentstack/build.gradleで設定されています。./gradlew :contentstack:jacocoTestReportを実行してユニットテストカバレッジを取得します(例:contentstack/build/reports/jacoco/)。 - ユニットテスト:
./gradlew :contentstack:testDebugUnitTest - インストルメンテーション:
./gradlew :contentstack:connectedDebugAndroidTest - プロダクションコードを変更する際はカバレッジを維持または改善します。新しいまたは変更された動作についてテストを追加します。
参考資料
contentstack/build.gradle– テスト依存関係、testOptions、jacoco- プロジェクトルール:
.cursor/rules/testing.mdc
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- contentstack
- ライセンス
- MIT
- 最終更新
- 2026/4/30
Source: https://github.com/contentstack/contentstack-android / ライセンス: MIT