create-unit-test
AnySoftKeyboard/AnySoftKeyboard/.claude/skills/create-unit-test/SKILL.md
Create and run unit tests following the project's architecture and guidelines (Robolectric, naming, location).
Skill3.4k starsChanged 26 days ago
What's in it
- Create Unit Test
- Workflow
- Guidelines
---
name: create-unit-test
description: Create and run unit tests following the project's architecture and guidelines (Robolectric, naming, location).
---
# Create Unit Test
This skill guides the creation of unit tests to ensuring consistency and correctness.
## Workflow
1. **Analyze and Plan**:
- **Goal**: Understand what needs testing.
- **Action**: Examine the source code.
- **Action**: Identify "happy path" cases (core functionality).
- **Action**: Identify "error cases" and "edge cases" based on likelihood.
- **Action**: Do **not** suggest implementation details unless asked; focus on behavior.
2. **Setup Test File**:
- **Naming**: `[OriginalClassName]Test.kt`.
- **Location**: `[module]/src/test/java/[package/path]/`.
- **Runner**: If testing Android components, you **MUST** use Robolectric.
- **Mocking**: Prefer creating **Fakes** over Mocks or patches. Use Mocks only if Fakes are too complex.
3. **Implement Tests**:
- Write clear, descriptive test methods.
- Follow the "Arrange-Act-Assert" pattern.
- Ensure all resources (strings, themes) are properly mocked or provided via Robolectric.
4. **Run Tests**:
- **Command**: `./gradlew :[module]:testDebugUnitTest`
- **Example**: `./gradlew :database:testDebugUnitTest`
- **Tip**: Before any commit, run `./gradlew testDebugUnitTest` to ensure everything passes.
5. **Handle Failures**:
- **Goal**: Diagnose and fix issues.
- **Action**: If a test fails, locate the full error report.
- **Path**: `[module]/build/test-results/testDebugUnitTest/TEST-[package.name.TestClassName].xml`.
- **Example**: `app/build/test-results/testDebugUnitTest/TEST-com.anysoftkeyboard.janus.app.MainActivityTest.xml`.
## Guidelines
- **Consistency**: Always place tests in the `test` source set, not `androidTest` (unless specifically writing instrumentation tests, which is rare for this skill).
- **Reliability**: Avoid flaky tests. Ensure deterministic behavior.
More agent context in AnySoftKeyboard/AnySoftKeyboard
3 other files this repository gives its agents.
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.

