blob: d2010048892ec807730ec1763d7dee23f360e4f5 [file] [log] [blame] [view]
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