Create and run unit tests following the project's architecture and guidelines (Robolectric, naming, location).
Installation
$skills install @AnySoftKeyboard/create-unit-test
Claude Code
Cursor
Copilot
Codex
Antigravity
Details
RepositoryAnySoftKeyboard/AnySoftKeyboard
Path.claude/skills/create-unit-test/SKILL.md
Branchmain
Scoped Name@AnySoftKeyboard/create-unit-test
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
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
-
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.
-
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.
- Naming:
-
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.
-
Run Tests:
- Command:
./gradlew :[module]:testDebugUnitTest - Example:
./gradlew :database:testDebugUnitTest - Tip: Before any commit, run
./gradlew testDebugUnitTestto ensure everything passes.
- Command:
-
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
testsource set, notandroidTest(unless specifically writing instrumentation tests, which is rare for this skill). - Reliability: Avoid flaky tests. Ensure deterministic behavior.
More by AnySoftKeyboard
View allwrite-app-change-log
15Generates and updates the latest app changelog based on git history since the last version tag.
add-dependency
15Add a new third-party dependency to the project following the version catalog and approval workflow.
create-unit-test
15Create and run unit tests following the project's architecture and guidelines (Robolectric, naming, location).
