请考虑以下测试代码...
main() {
StreamController controller;
setUp(() {
controller = StreamController.broadcast(sync: false);
});
tearDown(() {
controller.close();
});
test('Stream listen test', () {
var stream = controller.stream;
stream.listen((event) {
// >>>>> How can I test if this was called?? <<<<<<
});
controller.add('Here is an event!');
});
}
...如何正确测试stream.listen(...)
回调是否被调用?
stream.listen(...)
没有返回Future
,因此传统的expectAsyncX
匹配器在这里不起作用。
也许有一些方法可以使用stream.listen(...)
返回的StreamSubscription.asFuture()
来实现?
stream.listen()
内部的函数被调用。我正在寻找一种确认监听器被调用的方法。 - ra9rexpectAsync1
的扩展示例。 - Baker