AgentStack
SKILL verified MIT Self-run

Dart Test Fundamentals

skill-mdazadhossain95-flutter-agent-skills-dart-test-fundamentals · by mdazadhossain95

|-

No reviews yet
0 installs
16 views
0.0% view→install

Install

$ agentstack add skill-mdazadhossain95-flutter-agent-skills-dart-test-fundamentals

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Dart Test Fundamentals? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Dart Test Fundamentals

When to use this skill

Use this skill when:

  • Writing new test files.
  • structuring test suites with group.
  • Configuring test execution via dart_test.yaml.
  • Understanding test lifecycle methods.

Core Concepts

1. Test Structure (test and group)

  • test: The fundamental unit of testing.

``dart test('description', () { // assertions }); ``

  • group: Used to organize tests into logical blocks.
  • Groups can be nested.
  • Descriptions are concatenated (e.g., "Group Description Test Description").
  • Helps scope setUp and tearDown calls.
  • Naming: Use PascalCase for groups that correspond to a class name

(e.g., group('MyClient', ...)).

  • Avoid Single Groups: Do not wrap all tests in a file with a single

group call if it's the only one.

  • Naming Tests:
  • Avoid redundant "test" prefixes.
  • Include the expected behavior or outcome in the description (e.g.,

'throws StateError' or 'adds API key to URL').

  • Descriptions should read well when concatenated with their group name.
  • Named Parameters Placement:
  • For test and group calls, place named parameters (e.g., testOn,

timeout, skip) immediately after the description string, before the callback closure. This improves readability by keeping the test logic last. ``dart test('description', testOn: 'vm', () { // assertions }); ``

2. Lifecycle Methods (setUp, tearDown)

  • setUp: Runs before every test in the current group (and nested

groups).

  • tearDown: Runs after every test in the current group.
  • setUpAll: Runs once before any test in the group.
  • tearDownAll: Runs once after all tests in the group.

Best Practice:

  • Use setUp for resetting state to ensure test isolation.
  • Avoid sharing mutable state between tests without resetting it.

3. Configuration (dart_test.yaml)

The dart_test.yaml file configures the test runner. Common configurations include:

Platforms

Define where tests run (vm, chrome, node).

platforms:
  - vm
  - chrome
Tags

Categorize tests to run specific subsets.

tags:
  integration:
    timeout: 2x

Usage in code:

@Tags(['integration'])
import 'package:test/test.dart';

Running tags: dart test --tags integration

Timeouts

Set default timeouts for tests.

timeouts:
  2x # Double the default timeout

4. File Naming

  • Test files must end in _test.dart to be picked up by the test runner.
  • Place tests in the test/ directory.

Common commands

  • dart test: Run all tests.
  • dart test test/path/to/file_test.dart: Run a specific file.
  • dart test --name "substring": Run tests matching a description.

Related Skills

dart-test-fundamentals is the core skill for structuring and configuring tests. For writing assertions within those tests, refer to:

  • [dart-matcher-best-practices]:

Use this if the project sticks with the traditional package:matcher (expect calls).

  • [dart-checks-migration]: Use this

if the project is migrating to the modern package:checks (check calls).

[dart-matcher-best-practices]: https://github.com/kevmoo/dashskills/blob/main/.agent/skills/dart-matcher-best-practices/SKILL.md [dart-checks-migration]: https://github.com/kevmoo/dashskills/blob/main/.agent/skills/dart-checks-migration/SKILL.md

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.