| [](https://pub.dev/packages/checks_codegen) | |
| [](https://pub.dev/packages/checks_codegen/publisher) | |
| `package:checks_codegen` is a companion to [`package:checks`] for generating | |
| extensions to read fields from subjects under test. | |
| [`package:checks`]:https://pub.dev/packages/checks | |
| ## package:checks_codegen (experimental) | |
| `package:checks` is still experimental. For production use cases, please use | |
| `package:test` and `package:matcher`. | |
| For packages in the `labs.dart.dev` publisher we generally plan to either | |
| graduate the package into a supported publisher (`dart.dev`, `tools.dart.dev`) | |
| after a period of feedback and iteration, or discontinue the package. These | |
| packages have a much higher expected rate of API and breaking changes. | |
| To provide feedback on the API, please file [an issue][] with questions, | |
| suggestions, feature requests, or general feedback. | |
| [an issue]:https://github.com/dart-lang/test/issues/new?labels=package%3Achecks&template=03_checks_feedback.md | |
| ## Quickstart | |
| 1. Add a `dev_dependency` on `checks_codegen` (`dart pub add | |
| dev:checks_codegen`). | |
| 1. Use a `ChecksExtensions` annotation under `test/` to generate a library | |
| defining check extensions for listed types. In a shared testing library like | |
| `test/shared.dart` annotate an _export_ of `shared.checks.dart`. **Or** In a | |
| test suite `test/some_test.dart` annotate an _import_ to | |
| `some_test.checks.dart`. | |
| 1. Use `checks` that read fields in your test code: | |
| ```dart | |
| @CheckExtensions([TypedData]) | |
| import 'some_test.checks.dart'; | |
| // The `elementSizeInBytes` and `lengthInBytes` extensions are generated. | |
| void main() { | |
| test('sample test', () { | |
| check(typedData) | |
| ..elementSizeInBytes.equals(expectedElementSize) | |
| ..lengthInBytes.equals(expectedLength); | |
| }); | |
| } | |
| ``` |