我已经编写了一个简单的命令行Dart应用程序。该应用程序的功能位于bin目录中的app.dart文件中。
bin/app.dart
import 'dart:io';
void main(List<String> args) {
//(...)
}
我想用单元测试来测试主要方法。为此,我在测试目录中有一个文件app_test.dart
测试/app_test.dart
import 'package:test/test.dart';
import 'package:app/app.dart';
void main() {
test('main method runs through with exit code 0', () {
//I'd like to run the main method from bin/app.dart here
});
}
如何从test/app.art文件中引用bin/app.art中的main方法来运行测试的main方法?
解决方案显然是使用相对路径导入而不是包导入。所以我换了
import 'package:app/app.dart';
文件test/app_test.dart
至
import '../bin/app.dart' as app;
这使得能够用调用主方法
app.main();
来自测试文件。
我很难在官方文件中找到这种行为的参考,但这个Stackoverflow的答案拯救了我:如何在Dart中引用另一个文件?