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()
and d.file()
functions are the main entrypoints. They define a filesystem structure that can be created using Descriptor.create()
and verified using Descriptor.validate()
. For example:
import 'dart:io'; import 'package:test/test.dart'; 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 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
. 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.
This package is term_glyph
aware. It will decide whether to use ASCII or Unicode glyphs based on the glyph.ascii
attribute.