将测试分成多个文件是很常见的。我包括一个你如何做到这一点的例子。
想象一下,您有 2 个带有测试的文件,foo_test.dart、bar_test.dart 包含您的程序的测试。foo_test.dart 可能看起来像这样:
library foo_test;
import 'package:unittest/unittest.dart';
void main() {
test('foo test', () {
expect("foo".length, equals(3));
});
}
bar_test.dart 可能看起来像这样:
library bar_test;
import 'package:unittest/unittest.dart';
void main() {
test('bar test', () {
expect("bar".length, equals(3));
});
}
您可以运行任一文件,并且该文件中包含的测试将执行。
我会创建一个类似 all_tests.dart 的文件,它会从 foo_test.dart 和 bar_test.dart 导入测试。这是 all_tests.dart 的样子:
import 'foo_test.dart' as foo_test;
import 'bar_test.dart' as bar_test;
void main() {
foo_test.main();
bar_test.main();
}
如果你执行了 all_tests.dart,来自 foo_test.dart 和 bar_test.dart 的测试都会执行。
需要注意的一点:要使所有这些工作,您需要将 foo_test.dart 和 bar_test.dart 声明为库(参见每个文件的第一行)。然后,在 all_tests.dart 中,您可以使用 import 语法来获取声明的库的内容。
这就是我组织大部分测试的方式。