如何在Dart/Flutter上的测试中导入测试util文件



我有一些单元测试和一些只与测试相关的类,比如我的模型的工厂,mockito上的一些扩展等等。。。

问题是,当我试图从测试中导入这些文件时,我可以用相对路径导入它们,比如说我有这样的实用程序:

  • test/src/test_utils/factories.dart
  • test/src/test_utils/mocks.dart
  • test/src/test_utils/mockito_extensions.dart

我怎么做不到

但是当我试图从我的测试中导入它们时,它无法用找到它们

import 'package:myapp/test_utils/mocks.dart';

或:

import 'package:myapp/src/test_utils/mocks.dart';

唯一有效的

导入它们的唯一方法是通过相对路径,如:

import '../../test_utils/mocks.dart';

问题

我很想了解这里发生了什么,为什么我的测试在导入上找不到测试utils类,以及最好的方法是什么。

在pub包布局中,package:URI格式用于lib/下的文件。这些是";公共图书馆;可以在包的外部的中使用,因此它们是与包名称相关联的。test/下的文件对包来说是私有的,不需要通过包名称来引用-它们只有才能从相邻的文件和目录中引用,因此相对导入就足够了。package:URI格式的设计主要是因为它允许导入到其他包,而这些包没有稳定的相对路径。

请参阅https://dart.dev/tools/pub/package-layout#public-库

建议使用相对进口。

最新更新