3

我正在尝试创建一个需要我模拟 Element 类的单元测试

所以我的代码看起来像

import 'dart:html';

import 'package:unittest/unittest.dart';
import 'package:mock/mock.dart';


@proxy

class MockElement extends Mock implements Element{}

void main(){

  test("",(){
    MockView view = new MockView();  
    MockElement element = new MockElement();

当我运行它时,我收到以下消息

内置库 'dart:html' 在独立 VM 上不可用。'file:///C:/Users/Schmidt/Documents/GitHub/PicasaWebAlbumDisplay/test/picasaphotopresentor_test.dart':错误:第 1 行 pos 1:库处理程序导入 'dart:html' 失败;^

我需要导入 html 来定义 Element 类,所以我被困在这一点上。

有任何想法吗?

4

2 回答 2

1

根据您的要求,您可以使用html5lib。但是,它尚未与 dart:html 完全兼容,但目标是。

另一个值得探索的选择是使用无头浏览器进行测试。请参阅此示例

于 2014-02-25T01:53:19.577 回答
0

代替代理,尝试使用抽象工厂模式。应用程序使用元素工厂来获取实例。它可以通过一些全局变量来获取实例。当应用程序没有被测试时,这个实例将是为应用程序查询创建真正实现的工厂实现。Test 模块还可以实现 Factory 接口,并且可以在需要测试应用程序时设置全局变量来保存对自身的引用。因此,您将需要应用程序、测试、工厂实现、实现、测试、工厂接口和数据库接口。

于 2014-02-25T18:08:34.427 回答