gsmlg-dev/code-agent/dart-add-unit-test
Claude Code and agent skill by gsmlg-dev/code-agent
- community
Checking that the SKILL.md file is still in the repository.
Write and organize unit tests for functions, methods, and classes using `package:test`. Use when creating new logic or fixing bugs to ensure code remains correct and regression-free.
Install
npx vskill@latest install gsmlg-dev/code-agent/dart-add-unit-testSKILL.md
The same SKILL.md was published earlier as dart-lang/skills/dart-add-unit-test.
Testing Dart and Flutter Applications
Contents
Structuring Test Files
Organize test files to mirror the lib directory structure to maintain predictability.
- Place all test code within the
testdirectory at the root of the package. - Append
_test.dartto the end of all test file names (e.g.,lib/src/utils.dartshould be tested intest/src/utils_test.dart). - If writing integration tests, place them in an
integration_testdirectory at the root of the package.
Writing Tests
Utilize package:test as the standard testing library for Dart applications.
- Import
package:test/test.dart(orpackage:flutter_test/flutter_test.dartfor Flutter). - Group related tests using the
group()function to provide shared context. - Define individual test cases using the
test()function. - Validate outcomes using the
expect()function alongside matchers (e.g.,equals(),isTrue,throwsA()). - Write asynchronous tests using standard
async/awaitsyntax. The test runner automatically waits for theFutureto complete. - Manage test setup and teardown using
setUp()andtearDown()callbacks. - If testing code that relies on dependency injection, use
package:mockitoalongsidepackage:testto generate mock objects, configure fixed scenarios, and verify interactions.
Executing Tests
Select the appropriate test runner based on the project type and test location.
- If working on a pure Dart project, execute tests using the
dart testcommand. - If working on a Flutter project, execute tests using the
flutter testcommand. - If running integration tests, explicitly specify the directory path, as the default runner ignores it:
dart test integration_testorflutter test integration_test.
Test Implementation Workflow
Follow this sequential workflow when implementing new test suites. Copy the checklist to track your progress.
Task Progress
- [ ] 1. Create the test file in the
test/directory, ensuring the_test.dartsuffix. - [ ] 2. Import
package:test/test.dartand the target library. - [ ] 3. Define a
main()function. - [ ] 4. Initialize shared resources or mocks using
setUp(). - [ ] 5. Write
test()cases grouped by functionality usinggroup(). - [ ] 6. Execute the test suite using the appropriate CLI command.
- [ ] 7. Feedback Loop: Run test -> Review stack trace for failures -> Fix implementation or assertions -> Re-run until passing.
Examples
Standard Unit Test Suite
Demonstrates grouping, setup, synchronous, and asynchronous testing.
Mocking with Mockito
Demonstrates configuring a mock object for dependency injection testing.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.codex-plugin/plugins/flutter-skills/skills/dart-add-unit-test/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/gsmlg-dev/code-agent/dart-add-unit-test)