如何确定我们是否在Dart(Flutter)中运行单元测试

xmd2e60i  于 2023-06-07  发布在  Flutter
关注(0)|答案(2)|浏览(204)

在Flutter(Dart)中调用单元测试中的函数时,我如何确定我正在运行的是单元测试还是真实的应用程序?如果在单元测试中,我想传递不同的数据。

p1iqtdky

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会导致移动的上无法读取变量,请参阅此处。

bfrts1fy

bfrts1fy2#

公认的答案是正确的,但是如果你想在不破坏你的web代码的情况下检查测试环境,你可以使用universal_io包。

Platform.environment.containsKey('FLUTTER_TEST')

在Web上,Platform.environment将返回一个空Map,而不是使您的应用崩溃。

相关问题