我正在尝试测试我的“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'的子类型。”
我在这里做错了什么?
答案 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);