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/verygoodopensource/vgv-ai-flutter-plugin/testingnpx skills add VeryGoodOpenSource/vgv-ai-flutter-plugin --skill testinggit clone --depth 1 https://github.com/VeryGoodOpenSource/vgv-ai-flutter-pluginWhat 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 | $0.00018 | $0.04209 |
| Opus 5 | $0.00009 | $0.02105 |
| Sonnet 5 | $0.00004 | $0.00842 |
| Haiku 4.5 | $0.00002 | $0.00421 |
Grade A, and why
testing scanned grade A with 1 finding 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 2d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| `any()` | Matches any value (requires `registerFallbackValue` for custom types) | `when(() => mock.fetch(any()))` | How it starts
The opening of the file, as written. The whole thing — 480 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Dart & Flutter Testing
Testing fundamentals for Dart and Flutter projects — unit tests, widget tests, and golden file tests — using package:test, package:flutter_test, package:mocktail, and package:bloc_test.
Core Standards
Apply these standards to ALL test work:
- Descriptive test names — verbose, readable names that describe the behavior; never
'works'or'renders' - Hierarchical group/test structure that reads as natural sentences — top-level
groupfor the class, nestedgroupfor the method,testfor the behavior (e.g.,UserRepository→getUser→returns User when API succeeds) - String interpolation for type references — use
'returns $User'not'returns User'so renames propagate automatically - Private mocks per file — declare
class _MockX extends Mock implements X {}with underscore prefix to prevent cross-file coupling - Contained test setup within groups — all
setUp/tearDowncalls live inside agroup, never at the top level ofmain() - Initialize mutable objects in
setUp()withlate— declarelate MyDep dep;then assign insetUpso each test gets a fresh instance - No shared mutable state between tests — never use static members, global variables, or top-level final instances that persist across tests
- Use
package:mocktail— neverpackage:mockito - Constant test tags — use an
abstract class TestTagwithstatic constfields; never pass raw string literals as tags - Test behavior, not properties — widget tests focus on functional outcomes; static visual properties validated via golden tests
- Use
pumpApptest helper — wrap widgets via shared helper intest/helpers/pump_app.dart; never inlinepumpWidget(MaterialApp(...)) - Tag all golden tests — annotate with
TestTag.goldenso goldens can run/update independently - Pass
directoryto thetestMCP tool when the project is not at the workspace root — monorepos with the Flutter project in a subdirectory (e.g.mobile/) requiredirectory: 'mobile'; omit it only whenpubspec.yamlis at the workspace root - Pass
timeout_secondsto thetestMCP tool — Flutter tests can hang indefinitely whenpumpAndSettle()is called without a timeout; set a cap (e.g.timeout_seconds: 120) so the run is killed instead of stalling
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 2d ago First seen · 480 lines · 18 tokens per session scan A ec77e2828423
testing is a skill published in the GitHub repository VeryGoodOpenSource/vgv-ai-flutter-plugin (157 stars, last pushed 13d ago), licensed MIT. It adds 18 tokens to every session and 4,209 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
fl-testing
Writes unit and widget tests for blocs, repositories, and screens using bloctest + mocktail.
testing
Use when writing or reviewing Flutter/Dart tests (unit, widget, golden), fixing flaky tests, adding coverage, or choosing between unit and widget tests.
mockito
Use when generating mocks, stubbing methods, verifying interactions, capturing arguments, or choosing between mocks, fakes, and real objects (Mockito).
mocktail
Use when creating mocks, stubbing methods, verifying interactions, registering fallback values, or choosing between mocks, fakes, and real objects (Mocktail).
test-patterns
Applies proven testing patterns — Arrange-Act-Assert (AAA), Given-When-Then, Test Data Builders, Object Mother, parameterized tests, fixtures, spies, and test doubles — to help write maintainable, reliable, and readable test suites. Use when the user asks about writing unit tests, integration tests, or end-to-end…
Sanad Client Tester
Comprehensive testing and interactive verification protocol for the Sanad Flutter client including unit, widget, E2E, and agent-driven UI testing through the Dart VM Service.