Flutter构建测试插件build_test的使用
Flutter构建测试插件build_test
的使用
简介
build_test
是为使用package:build
的开发者提供的测试工具。它主要用于开发依赖项,并不应在生产代码中使用。
安装
在您的pubspec.yaml
文件中添加如下内容:
dev_dependencies:
build_test:
运行测试
为了运行测试,您应该使用dart run build_runner test
命令。这将编译所有测试到一个临时目录,并通过dart run test
来执行这些测试。如果想要查看输出目录,可以使用--output=<dir>
选项指定输出位置。
向dart run test
转发额外参数
通常需要向最终调用的dart run test
传递一些参数。为此,在空参数--
之后添加所有这些参数。
例如,要运行所有Chrome平台测试,您可以这样做:
dart run build_runner test -- -p chrome
调试Web测试
此包会自动创建*.debug.html
文件,与所有的*_test.dart
文件相邻,可以从正常的开发服务器(dart run build_runner serve
)加载这些文件到浏览器中。
**注意:**为了以这种方式运行测试,您需要配置它们进行编译(默认情况下我们只编译*.browser_test.dart
文件)。您可以在build.yaml
文件中进行如下配置:
targets:
$default:
builders:
build_web_compilers:entrypoint:
generate_for:
- test/**_test.dart
- web/**.dart
您也可以通过导航到http://localhost:8081
(或您的test
文件夹所在的服务地址)来查看每个*.debug.html
文件的链接索引。
为自定义Builder编写测试
除了辅助运行普通测试外,该包还提供了一些用于测试自定义Builder
类的实用工具。
在测试环境中运行Builder
使用testBuilder
,您可以在测试环境中对Builder
进行功能测试,包括提供特定资产等。它自动创建各种实用类的内存表示形式。
示例代码
下面是一个如何使用testBuilder
来测试自定义Builder的示例:
import 'package:build_test/build_test.dart';
import 'package:test/test.dart';
void main() {
test('simple builder test', () async {
var result = await testBuilder(yourCustomBuilder, {
'your_package|lib/file.dart': '''
// Your source code here
''',
});
expect(result, contains('expected output'));
});
}
将实际包资源暴露给testBuilder
可以通过将PackageAssetReader
传递给reader
参数,将实际包资源暴露给builder,除了内存中的资源之外。
testBuilder(yourBuilder, {}/* 测试资源 */,
reader: await PackageAssetReader.currentIsolate());
解析源代码进行测试
使用resolveAsset
和resolveSource
,您可以解析Dart源代码进入静态元素模型,这对于编写Builder
时的测试非常有用。
示例代码
import 'package:build_test/build_test.dart';
import 'package:test/test.dart';
void main() {
test('should resolve a simple dart file', () async {
var resolver = await resolveSource(r'''
library example;
class Foo {}
''');
var libExample = resolver.getLibraryByName('example');
expect(libExample.getType('Foo'), isNotNull);
});
}
各种类的测试实现
FakeWatcher
InMemoryAssetReader
InMemoryAssetWriter
MultiAssetReader
PackageAssetReader
RecordingAssetWriter
StubAssetReader
StubAssetWriter
以上就是关于build_test
插件的基本介绍和使用方法。希望这对您有所帮助!
更多关于Flutter构建测试插件build_test的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html