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.