使用Dart Milestone 4版本21658
我是Dart的新手。我创建了一个类。我想对它进行单元测试。类和单元测试都在使用Dart编辑器创建的同一个Dart项目中。我不知道如何让单元测试看到我的课程。我怎么能这样做?
项目名称: DartExp
目录结构:
src/foo.dart
test/foo_test.dart
文件内容:
--- foo.dart begin ----
//library foo;
class Foo
{
String bar;
}
--- foo.dart结束----
--- foo.dart begin ----
import 'package:unittest/unittest.dart';
import 'package:DartExp/foo.dart';
import 'DartExp/foo.dart';
import 'foo.dart';
import 'src/foo.dart';
import 'package:src/foo.dart';
main() {
test('test Foo', () {
Foo foo;
//expect(1,1);
});
}
--- foo.dart结束----
我尝试过的事情:
在Dart编辑器中,在文件foo_test.dart中,我导入foo.dart的所有尝试都被标记为错误,因为" ...无效uri"。编辑还说Foo类是未定义的。 删除所有foo.dart导入语句,也不起作用。 将foo.dart放入库中也不起作用。
Dart import语句的文档似乎没有给出这个常见用例的任何示例。
那么,如何在Dart中将类导入单元测试?
答案 0 :(得分:3)
Dart使用Pub package manager进行依赖关系管理,并具有特定的建议包布局,您可以阅读on the Pub website。
尝试此操作并运行pub install
。
目录结构:
pubspec.yaml
lib/foo.dart
test/foo_test.dart
<强> pubspec.yaml 强>
name: my_package
description: description
dev_dependencies:
unittest: any
<强> LIB / foo.dart:强>
library foo;
class Foo {
}
<强>测试/ foo_test.dart:强>
import 'package:unittest/unittest.dart';
import 'package:foo/foo.dart';
main() {
test('test Foo', () {
Foo foo;
});
}
{Puber}创建的package:
目录解析packages
个URL。为了更好地理解这一点,请在运行packages
后查看pub install
目录的内容。
所以这个:
import 'package:[package-name]/[file].dart';
导入名为[package-name]
的程序包中的库,该程序包位于此程序包的lib
文件夹中的[file].dart
文件中。 (注意:一个包可以有多个库。)
答案 1 :(得分:1)
这些路径中的任何一个都可以在Dart单元测试中访问类Foo。 src / foo.dart不需要库。但即便如此,两种导入路径仍然有效。
import '../src/foo.dart';
import 'package:../src/foo.dart';
顺便说一下,截至2013年4月28日,[http://pub.dartlang.org/doc/package-layout.html] 没有顶级 src 目录(所以我想,我的班级在非标准目录中)。