add-missing-unit-test

oleh flutter

Tambahkan unit test baru untuk kelas yang saat ini belum memilikinya, atau tambahkan kasus uji baru ke file pengujian yang sudah ada, dengan memverifikasi perbaikannya menggunakan Kover.

npx skills add https://github.com/flutter/flutter-intellij --skill add-missing-unit-test

Skill: Add Missing Unit Test

You are tasked with adding a new unit test for a class that currently lacks one, or adding a new test case to an existing test file, to improve code coverage and reliability.

Objective

Add a new unit test for a class that currently lacks one, or add a new test case to an existing test file, to improve code coverage and reliability.

Workflow Instructions

1. Identify Target

  • Choose a class in src/ that has complex logic but logic coverage is missing or incomplete.

2. Establish Baseline

  • Run ./gradlew testClasses to compile all sources (production and test) and ensure the project is in a valid state.
  • Run ./gradlew verifyPlugin to ensure no plugin verification issues exist.
  • Run ./gradlew test (or specific test if it exists) to establish current pass/fail status.
  • Run tests with Kover (./gradlew koverHtmlReport or ./gradlew koverXmlReport) to determine current coverage percentage for target class.

3. Implement Test

  • Create a new test class ([ClassName]Test) in testSrc/ if it doesn't exist.
  • Add test cases to cover specific methods, edge cases, and branches.
  • Ensure the test follows project testing conventions (naming, mocking, assertions).

4. Verify

  • Run ./gradlew testClasses to ensure new test compiles.
  • Run new test (and related tests) to ensure it passes.
  • Run ./gradlew verifyPlugin to ensure no regressions in plugin verification.
  • Run Kover again to confirm coverage improvement.

5. Report & Review

  • Summarize test added and coverage improvement.
  • Test Location: Explicitly state where in the IDE user should go to test changed functionality (e.g., "Run the new test file [TestFileName]").
  • Action: Ask user to review new test closely. Validate that code being tested is actively used (e.g., check that it is not dead code/0 references).
  • Do not commit or push.
  • Provide a suggested Git commit message, explicitly including the Kover coverage improvement:
    • Example Pattern: Add unit tests for [Class Name]. Coverage verified using Kover. Coverage improvement: [Class Name]: ~[X]% line coverage ([Y] covered, [Z] uncovered).

Lebih banyak skill dari flutter

dart-modern-features
flutter
Untuk menemukan kandidat untuk modernisasi:
flutter-fix-layout-issues
flutter
Memperbaiki kesalahan tata letak Flutter (overflow, batasan tak terbatas) menggunakan Dart dan alat Flutter MCP. Gunakan saat menangani "RenderFlex overflowed", "Vertical…
adding-release-notes
flutter
Menambahkan deskripsi perubahan yang terlihat oleh pengguna ke catatan rilis DevTools. Gunakan saat mendokumentasikan perbaikan, perbaikan bug, atau fitur baru di file NEXT_RELEASE_NOTES.md.
reviewing-devtools-prs
flutter
Alur kerja peninjauan PR khusus repositori DevTools yang menerapkan pedoman gaya DevTools dan pola peninjauan umum. Gunakan saat meninjau pull request di…
dart-use-primary-constructors
flutter
Bantu pengguna menulis konstruktor utama yang benar secara sintaksis dan semantik dalam Dart, serta migrasi/menggunakan sintaks konstruktor baru, sintaks titik koma badan kosong,…
code-documentation
flutter
Panduan untuk menulis dokumentasi kode yang efektif, termasuk docstrings, JSDoc, dartdoc, dan komentar implementasi. Gunakan keterampilan ini saat menulis kode baru, menambahkan…
api-review
flutter
Meninjau kode yang ditentukan terhadap pedoman API Design kanonik. Gunakan skill ini saat pengguna meminta tinjauan API atau untuk memeriksa kode terhadap desain API…
flutter-accessibility
flutter
Menerapkan standar aksesibilitas WCAG 2 dan EN 301 549 serta tata letak adaptif di aplikasi Flutter. Memberlakukan anotasi semantik, ukuran target ketuk (minimal 48x48 dp), dan rasio kontras teks (4,5:1 untuk teks kecil, 3:1 untuk teks besar) di platform seluler, web, dan desktop. Menyediakan logika keputusan untuk inisialisasi semantik web, pembungkusan widget interaktif, peralihan tata letak berdasarkan ukuran layar, serta penanganan input keyboard/mouse. Mencakup manajemen traversal fokus melalui FocusTraversalGroup dan...