我在做一个颤栗的网络项目。web/index.html文件正在注入一个JavaScript脚本,该脚本可以简化为:
<script>
window['dataLayer'] = [];
</script>所以在我的颤振代码中,我可以:
@JS()
import 'package:js/js.dart';
@JS('dataLayer.push')
external void push(data);
push(myData);将myData推送到window.dataLayer数组中。
但是,在测试中,当我运行
flutter test --platform chrome我搞错了
TypeError: Cannot read properties of undefined (reading 'push')当我打电话的时候
push(myData);因为从来没有创建过window['dataLayer']。
如何像在index.html中那样注入一些javascript脚本
发布于 2022-05-06 01:19:44
可以在运行测试时加载自定义HTML文件,请参阅包test的test。
如果您的测试文件名为folder/my_test.dart,那么您可以创建一个名为(folder/my_test.html)的html文件:
<!doctype html>
<html>
<head>
<title>Custom HTML file title</title>
<link rel="x-dart-test" href="my_test.dart">
<script src="packages/test/dart.js"></script>
<script>
window['dataLayer'] = [];
</script>
</head>
</html>然后你就可以跑
dart test --platform chrome但是,只有dart test而不是flutter test才支持这一点,请参阅本期。在它中,他们建议编写一个集成测试。
https://stackoverflow.com/questions/71775928
复制相似问题