测试Stream事件

时间:2013-07-26 12:00:03

标签: dart

我正在尝试测试我的“Site”类,如果它投射“事件”(使用Stream类)

到目前为止:

test('position', () {
    Site site = new Site();

    Function func = (bool isNew) {
      expect(isNew, equals(true));
    };

    site.onPositionChange.listen((bool b) {
      func(b); 
    });

    var callback = expectAsync1(func, count: 1);
    new Timer(new Duration(milliseconds: 100), callback);

    site.position = new Position(x: 1.0, y: 2.0);
  });

不幸的是它失败了 “期望:网站:位置。测试失败:抓住类型'(动态)=>动态'不是”回调“类型'()=> void'的子类型。”

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

对计时器的回调不会带一个参数。我不知道你想测试什么,但是这里有一个版本,你的func函数用来自Timer的false调用。

var callback = expectAsync0(() => func(false));  // No need for count if it is 1.
new Timer(new Duration(milliseconds: 100), callback);