2

使用 Dart Milestone 4 版本 21658

我是飞镖的新手。我创建了一个类。我想对它进行单元测试。类和单元测试都在使用 Dart 编辑器创建的同一个 Dart 项目中。我不知道如何让单元测试看到我的课。我怎样才能做到这一点?

项目名称: DartExp

目录结构:

src/foo.dart
test/foo_test.dart

文件内容:

--- foo.dart 开始 ----

//library foo;

class Foo
{
  String bar;
}

--- foo.dart 结束 ----

--- foo.dart 开始 ----

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 导入语句的文档似乎没有为这种常见用例提供任何示例。

那么,如何将一个类导入到 Dart 中的单元测试中呢?

4

2 回答 2

3

Dart 使用Pub 包管理器进行依赖管理,并具有特定的建议包布局,您可以在 Pub 网站上阅读。

试试这个并运行pub install.

目录结构:

pubspec.yaml
lib/foo.dart
test/foo_test.dart

发布规范.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;
   });
}

URL 是从Pub 创建package:的目录中解析的。packages为了更好地理解这一点,请在packages运行后查看目录的内容pub install

所以这:

import 'package:[package-name]/[file].dart';

导入位于名为 的包中的库,并在此包的文件夹中名为的文件中[package-name]找到该库。(注意:一个包可以有多个库。)lib[file].dart

于 2013-04-22T01:34:20.600 回答
1

这些路径中的任何一个都使类 Foo 在 Dart 单元测试中可访问。src/foo.dart 不需要库。但即使是这样,两个导入路径仍然有效。

import '../src/foo.dart';
import 'package:../src/foo.dart';

顺便说一句,截至 2013 年 4 月 28 日,[http://pub.dartlang.org/doc/package-layout.html] 没有顶级src目录(所以我猜,我的班级在非标准目录)。

于 2013-04-29T00:10:27.763 回答