如何在单元测试中访问Dart类

时间:2013-04-22 01:28:04

标签: dart

使用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中将类导入单元测试?

2 个答案:

答案 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 目录(所以我想,我的班级在非标准目录中)。