Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/skydoves/android-testing-skills/using-robolectric-correctlynpx skills add skydoves/android-testing-skills --skill using-robolectric-correctlygit clone --depth 1 https://github.com/skydoves/android-testing-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/skydoves/android-testing-skills/using-robolectric-correctly)<a href="https://agentmods.dev/skills/skydoves/android-testing-skills/using-robolectric-correctly"><img src="https://agentmods.dev/badge/skills/skydoves/android-testing-skills/using-robolectric-correctly.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00208 | $0.05394 |
| Opus 5 | $0.00104 | $0.02697 |
| Sonnet 5 | $0.00042 | $0.01079 |
| Haiku 4.5 | $0.00021 | $0.00539 |
Grade A, and why
using-robolectric-correctly scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 414 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Using Robolectric Correctly — Android On The JVM, Without The Footguns
Robolectric simulates Android on the JVM by swapping in pure-Java reimplementations of system classes ("shadows"). It is fast (10-100x vs an emulator) but not an emulator: no real RenderThread, no real Binder, no real GPU. This skill locks down the runner choice, the @Config matrix, the looper draining ritual, and the AGP 7.2+ sharedTest gotcha. Compose-on-Robolectric specifics live in ../../../compose/synchronization/controlling-the-test-clock/SKILL.md.
When to use this skill
- The class under test imports
android.*(Context, Resources, View, PackageManager, Looper) and the developer wants to test it on the JVM in seconds, not on an emulator in minutes. - A unit test fails with
RuntimeException: Method ... not mocked(the bare-Android-jar default) — the developer needs Robolectric's shadows. - A unit test fails with
Resources$NotFoundException—testOptions.unitTests.includeAndroidResourcesis missing. - The developer asks "AndroidJUnit4 vs RobolectricTestRunner — which?".
- A
Handler.postDelayed/Looperqueue does not advance under Robolectric's defaultLooperMode.PAUSED. - The developer asks how to run the same test source on JVM and on a device (
sharedTest/androidHostTest+androidDeviceTest). - Build error after AGP 7.2+: "Source directory ... already added to source set", caused by the classic
sharedTestsrcDirsharing pattern.
When NOT to use this skill
- The class under test has zero
android.*imports. Robolectric pays a 1-3 s class-load tax for nothing — use plain JUnit4. See../../runner/configuring-junit4-on-android/SKILL.md. - The test verifies pixel correctness, ripple animations, screenshot diffs, accessibility services, or
RenderThreadtiming. Run on an emulator/device. See../../../instrumentation/runner/running-instrumented-tests-with-androidjunit4/SKILL.md. - The test is about coroutines +
runTestand does not need framework Android. Use../../coroutines/testing-coroutines-with-runtest/SKILL.md. - The test is about Compose UI rendering. The host-test environment is set up by
../../../compose/setup/configuring-test-dependencies/SKILL.mdand the clock semantics live in../../../compose/synchronization/controlling-the-test-clock/SKILL.md.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 414 lines · 208 tokens per session scan A 7d8cf8ce32b2
using-robolectric-correctly is a skill published in the GitHub repository skydoves/android-testing-skills (318 stars, last pushed 3mo ago), licensed Apache-2.0. It adds 208 tokens to every session and 5,394 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
java-unit-test
为 Spring Boot 项目生成高质量 Java 单元测试代码。当用户要求"写单元测试"、"生成测试用例"、"帮我写 test"、"补充测试覆盖"、"写 JUnit 测试"、"写 Mockito 测试"、"测试这个 Service / Controller / Mapper"时,必须使用此 skill。即使用户只是说"帮我测一下这个方法"或贴出 Java 代码并问"怎么测",也应触发此 skill。.
test-quality
Write high-quality JUnit 5 tests with AssertJ assertions. Use when user says "add tests", "write tests", "improve test coverage", or when reviewing/creating test classes for Java code.
refactor
Refactor Java code in this repo without changing behavior. Not for bug fixes or new features.
java-regression-test-generator
Automatically generate regression tests for Java codebases by analyzing changes between old and new code versions. Use when users need to: (1) Generate tests after refactoring or code changes, (2) Ensure previously tested behavior still works in new versions, (3) Cover modified or newly added code paths, (4) Migrate…
eclipse-test
Run JUnit tests in Eclipse projects — all tests, by package, by class, or individual test methods. Also build Maven projects.
111-java-maven-dependencies
Use when you need to add or evaluate Maven dependencies that improve code quality or domain modeling — including nullness annotations (JSpecify), static analysis (Error Prone + NullAway), functional programming (VAVR), architecture testing (ArchUnit), or money and currency support (JavaMoney) — and want a…