
Mockito
- 39 installs
- 605 repo stars
- Updated August 4, 2026
- evanca/flutter-ai-rules
Helps with ai & agent building tasks.
About
mockito is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- mockito
- AI & Agent Building
- AI-coding skill
Mockito by the numbers
- 39 all-time installs (skills.sh)
- Ranked #8,347 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/evanca/flutter-ai-rules --skill mockitoAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 39 |
|---|---|
| repo stars | ★ 605 |
| Last updated | August 4, 2026 |
| Repository | evanca/flutter-ai-rules ↗ |
What it does
Helps with ai & agent building tasks.
Files
Mockito Skill
This skill defines how to correctly use the mockito package for mocking in Dart and Flutter tests.
---
1. Mock vs. Fake vs. Real Object
| Use | When |
|---|---|
| Real object | Prefer over mocks when practical. |
Fake (extends Fake) | Lightweight custom implementation; override only the methods you need. Prefer over mocks when you don't need interaction verification. |
Mock (extends Mock) | Only when you need to verify interactions (call counts, arguments) or stub dynamic responses. |
- Data models should not be mocked if they can be constructed with stubbed data.
- Only use mocks if your test has
verifyassertions; otherwise prefer real or fake objects.
---
2. Generating Mocks
@GenerateMocks([MyClass])
// or for nice mocks (return simple legal values for missing stubs):
@GenerateNiceMocks([MockSpec<MyClass>()])
void main() { ... }dart run build_runner build- Only annotate files under
test/for mock generation by default. - Use a
build.yamlif you need to generate mocks outside oftest/. - Never add
@overridemethods or implementations to a class extendingMock. - Never stub responses in a mock's constructor or inside the mock class — always stub in your tests.
---
3. Stubbing
final mock = MockCat();
// Return a value
when(mock.sound()).thenReturn('Meow');
// Throw an error
when(mock.sound()).thenThrow(Exception('No sound'));
// Calculate response at call time
when(mock.sound()).thenAnswer((_) => computedValue);
// Return values in sequence
when(mock.sound()).thenReturnInOrder(['Meow', 'Purr']);- Always stub methods/getters before using them if you need specific return values.
- Missing stub behavior:
@GenerateMocks→ throws;@GenerateNiceMocks→ returns a simple legal value. - Use
throwOnMissingStub(mock)to throw on any unstubbed call.
---
4. Verification
verify(mock.sound()); // called at least once
verifyNever(mock.eat(any)); // never called
verify(mock.sound()).called(2); // called exactly twiceAsync:
await untilCalled(mock.sound()); // wait for the interaction---
5. Argument Matchers
// Flexible stubbing
when(mock.eat(any)).thenReturn(true);
when(mock.eat(argThat(isNotNull))).thenReturn(true);
// Named arguments
when(mock.fetch(any, headers: any)).thenReturn(response);- Do not use
nullas an argument adjacent to an argument matcher. - For named arguments, use
anyorargThatas values, not as argument names.
---
6. Capturing Arguments
final captured = verify(mock.eat(captureAny)).captured;
print(captured.last); // last captured argumentUse captureThat for conditional capturing.
---
7. Resetting Mocks
reset(mock); // clear all stubs AND interactions
clearInteractions(mock); // clear only recorded interactions---
8. Mocking Function Types
To mock a function type (e.g., a callback), define an abstract class with the required signature and generate mocks for it:
abstract class Callback {
void call(String value);
}
@GenerateMocks([Callback])---
9. Debugging
logInvocations([mock1, mock2]); // print all collected invocations---
References
Related skills
AI & Agent Buildingagents