我有一个使用source_gen制作的代码生成器。它工作正常,但是我想添加测试。
我遵循了文档,并使用built_value中的testBuilder
从build_test中汲取了灵感。
问题是,当使用testBuilder
时,它无法正确解析导入。因此会引发错误,并且不会触发我的生成器。
错误:asset:example / lib / src / truc.dart的第1行,第91列:无法解析foo()→动态\ n'
的注释
这是我当前的测试尝试:
import 'package:source_gen/source_gen.dart';
import 'package:test/test.dart';
import 'package:build_test/build_test.dart';
import 'package:my_gen/my_gen.dart';
const input = {
"example|lib/src/foo.dart": '''
import 'package:my_gen/my_gen.dart';
import 'package:flutter/material.dart';
@stateless
Widget foo() {
return Center();
}
'''
};
void main() {
test('', () async {
await testBuilder(SharedPartBuilder([MyGenerator], "stateless"), input, outputs: {
"example|lib/src/foo.stateless.g.part": '''
// **************************************************************************
// StatelessGenerator
// **************************************************************************
class Foo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return foo();
}
}
'''
});
});
}
如何制作testBuilder
才能正确解决导入问题;并最终通过发电机进行测试?
答案 0 :(得分:0)
看看我们在json_serializable
-https://github.com/dart-lang/json_serializable/blob/master/json_serializable/test/json_serializable_test.dart
我们不使用build_test
。相反,我们有一个实用程序库,该实用程序库具有可用于测试的库读取器-https://github.com/dart-lang/json_serializable/blob/master/json_serializable/test/analysis_utils.dart