| The `test_descriptor` package provides a convenient, easy-to-read API for |
| defining and verifying directory structures in tests. |
| |
| We recommend that you import this library with the `d` prefix. The |
| [`d.dir()`][dir] and [`d.file()`][file] functions are the main entrypoints. They |
| define a filesystem structure that can be created using |
| [`Descriptor.create()`][create] and verified using |
| [`Descriptor.validate()`][validate]. For example: |
| |
| [dir]: https://pub.dev/documentation/test_descriptor/latest/test_descriptor/dir.html |
| [file]: https://pub.dev/documentation/test_descriptor/latest/test_descriptor/file.html |
| [create]: https://pub.dev/documentation/test_descriptor/latest/test_descriptor/Descriptor/create.html |
| [validate]: https://pub.dev/documentation/test_descriptor/latest/test_descriptor/Descriptor/validate.html |
| |
| ```dart |
| import 'dart:io'; |
| |
| import 'package:test_descriptor/test_descriptor.dart' as d; |
| |
| void main() { |
| test("Directory.rename", () async { |
| await d.dir("parent", [ |
| d.file("sibling", "sibling-contents"), |
| d.dir("old-name", [ |
| d.file("child", "child-contents") |
| ]) |
| ]).create(); |
| |
| await new Directory("${d.sandbox}/parent/old-name") |
| .rename("${d.sandbox}/parent/new-name"); |
| |
| await d.dir("parent", [ |
| d.file("sibling", "sibling-contents"), |
| d.dir("new-name", [ |
| d.file("child", "child-contents") |
| ]) |
| ]).validate(); |
| }); |
| } |
| ``` |
| |
| By default, descriptors create entries in a temporary sandbox directory, |
| [`d.sandbox`][sandbox]. A new sandbox is automatically created the first time |
| you create a descriptor in a given test, and automatically deleted once the test |
| finishes running. |
| |
| [sandbox]: https://pub.dev/documentation/test_descriptor/latest/test_descriptor/sandbox.html |
| |
| This package is [`term_glyph`][term_glyph] aware. It will decide whether to use |
| ASCII or Unicode glyphs based on the [`glyph.ascii`][ascii] attribute. |
| |
| [term_glyph]: https://pub.dev/packages/term_glyph |
| [ascii]: https://pub.dev/documentation/term_glyph/latest/term_glyph/ascii.html |