【发布时间】:2014-07-13 17:23:19
【问题描述】:
我正在尝试通过模拟套接字来测试使用 WebSockets 的类
我的班级看起来像
class WebLoggerHandler{
WebLoggerHandler(){
var webSocket = new WebSocket('hostUrl');
webSocket.onOpen.first.then((_) {
webSocket.sendString('hello');
});
}
}
我正在模拟 WebSocket 类如下
class MockWebSocket extends Mock implements WebSocket{
Stream<Event> onOpen;
}
我的测试主体看起来像
var webSocket = new MockWebSocket();
//fire the onOpen event
webSocket.onOpen = new Stream.fromFuture( new Future.value( new Event( "onOpen")));
WebLoggerHandler underTest = new WebLoggerHandler();
//test that the hello message was sent when the socket was opened
webSocket.getLogs( callsTo("sendString", 'hello')).verify( happenedExactly(1))
但它不起作用,因为 onClose 事件是在检查 webSocket 日志之后发生的。
如何让代码等待 Future 发生?
谢谢
【问题讨论】:
标签: dart dart-html dart-async