multiAI Summary Pending

create-unit-test

Create and run unit tests following the project's architecture and guidelines (Robolectric, naming, location).

231 stars

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/create-unit-test/SKILL.md --create-dirs "https://raw.githubusercontent.com/aiskillstore/marketplace/main/skills/anysoftkeyboard/create-unit-test/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/create-unit-test/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How create-unit-test Compares

Feature / Agentcreate-unit-testStandard Approach
Platform SupportmultiLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Create and run unit tests following the project's architecture and guidelines (Robolectric, naming, location).

Which AI agents support this skill?

This skill is compatible with multi.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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.