在Flutter(Dart)中调用单元测试中的函数时,我如何确定我正在运行的是单元测试还是真实的应用程序?如果在单元测试中,我想传递不同的数据。
p1iqtdky1#
您可以使用以下命令检查是否正在运行测试。
Platform.environment.containsKey('FLUTTER_TEST')
以下网页解决方案
请注意,上面的代码不能在Web上工作,因为Platform类是dart:io的一部分,而dart:io在Web上不可用。另一种适用于所有平台(包括Web)的解决方案是使用--dart-define构建环境变量。它可以从Flutter 1.17获得使用--dart-define运行测试的示例:flutter drive --dart-define=testing_mode=true --target=test_driver/main.dart在代码中,您可以使用以下代码检查此环境变量:const bool.fromEnvironment('testing_mode', defaultValue: false)不使用const会导致移动的上无法读取变量,请参阅此处。
Platform
dart:io
--dart-define
flutter drive --dart-define=testing_mode=true --target=test_driver/main.dart
const bool.fromEnvironment('testing_mode', defaultValue: false)
bfrts1fy2#
公认的答案是正确的,但是如果你想在不破坏你的web代码的情况下检查测试环境,你可以使用universal_io包。
在Web上,Platform.environment将返回一个空Map,而不是使您的应用崩溃。
2条答案
按热度按时间p1iqtdky1#
您可以使用以下命令检查是否正在运行测试。
以下网页解决方案
请注意,上面的代码不能在Web上工作,因为
Platform
类是dart:io
的一部分,而dart:io
在Web上不可用。另一种适用于所有平台(包括Web)的解决方案是使用--dart-define
构建环境变量。它可以从Flutter 1.17获得使用
--dart-define
运行测试的示例:flutter drive --dart-define=testing_mode=true --target=test_driver/main.dart
在代码中,您可以使用以下代码检查此环境变量:
const bool.fromEnvironment('testing_mode', defaultValue: false)
不使用const会导致移动的上无法读取变量,请参阅此处。
bfrts1fy2#
公认的答案是正确的,但是如果你想在不破坏你的web代码的情况下检查测试环境,你可以使用universal_io包。
在Web上,Platform.environment将返回一个空Map,而不是使您的应用崩溃。