我正在尝试通过模拟套接字来测试使用 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))
但它不起作用,因为在检查 webSocket 日志后发生 onClose 事件。
如何让代码等待未来发生?
谢谢