Marketplace create-unit-test
Create and run unit tests following the project's architecture and guidelines (Robolectric, naming, location).
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/anysoftkeyboard/create-unit-test" ~/.claude/skills/aiskillstore-marketplace-create-unit-test && rm -rf "$T"
manifest:
skills/anysoftkeyboard/create-unit-test/SKILL.mdsource content
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
to ensure everything passes../gradlew testDebugUnitTest
- 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
source set, nottest
(unless specifically writing instrumentation tests, which is rare for this skill).androidTest - Reliability: Avoid flaky tests. Ensure deterministic behavior.