Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart-流事件超时的单元测试_Dart_Dart Async_Dart Unittest - Fatal编程技术网

Dart-流事件超时的单元测试

Dart-流事件超时的单元测试,dart,dart-async,dart-unittest,Dart,Dart Async,Dart Unittest,这是我在尝试对流进行单元测试时遇到的问题的一个非常简化的版本 测试检查是否已将正确的事件添加到流中-它似乎工作正常-例如,将值add('test')更改为add('test2')将使测试失败 但是当你注释掉一行fireKeepAliveMessage(message)这样事件就不会抛出,单元测试将永远运行 如何为测试添加某种超时?还是有更好的方法解决这个问题 库流_测试; 导入“包:unittest/unittest.dart”; 导入“dart:async”; void main(){ 测试(

这是我在尝试对流进行单元测试时遇到的问题的一个非常简化的版本

测试检查是否已将正确的事件添加到流中-它似乎工作正常-例如,将值
add('test')
更改为
add('test2')
将使测试失败

但是当你注释掉一行
fireKeepAliveMessage(message)这样事件就不会抛出,单元测试将永远运行

如何为测试添加某种超时?还是有更好的方法解决这个问题

库流_测试;
导入“包:unittest/unittest.dart”;
导入“dart:async”;
void main(){
测试(“aa”),(){
StreamController StreamController=新的StreamController();
streamController.添加(“测试”);
Stream underTest=streamController.Stream;
测试不足。首先。然后(expectAsync((e){
期望(e,等于(“测试”);
})); 
});
}

流类具有用于此的方法

流超时(持续时间限制,{Function void onTimeout(EventSinksink)})
创建与此流具有相同事件的新流

当两个事件之间的时间限制超过此时间限制时 流,则调用onTimeout函数

在监听返回的流之前,倒计时不会开始。 每次从该服务器转发事件时,都会重置倒计时 流,或当流暂停并恢复时

使用一个参数调用onTimeout函数:一个 dart-async.EventSink,允许将事件放入返回的 流动此EventSink仅在调用onTimeout期间有效

如果省略onTimeout,则超时只会将 将dart-async.TimeoutException放入返回的 小溪

返回的流不是广播流,即使该流是广播流

我想这样做:

库流_测试;
导入“包:unittest/unittest.dart”;
导入“dart:async”;
void main(){
测试(“aa”),(){
StreamController StreamController=新的StreamController();
定时器t;
Stream underTest=streamController.Stream;
测试不足。首先。然后(expectAsync((e){
期望(e,等于(“测试”);
如果(t!=null){
t、 取消();
}
}));
t=新计时器(新持续时间(秒:3),(){
失败(“事件未及时触发”);
});
streamController.添加(“测试”);
});
}

谢谢你,冈特。像往常一样,你来拯救我,帮助我进行单元测试异步代码:)