这是我在尝试对流进行单元测试时遇到的问题的一个非常简化的版本。
测试检查是否已将正确的事件添加到流中 - 它似乎工作正常 - 例如,将值更改add( 'test')
为add( 'test2')
将使测试失败。
但是当您注释掉该行fireKeepAliveMessage(message);
以便事件不会抛出时,单元测试将永远运行。
如何在测试中添加某种超时?或者有没有更好的方法来解决这个问题?
library stream_test;
import "package:unittest/unittest.dart";
import "dart:async";
void main() {
test("aa", () {
StreamController streamController = new StreamController();
streamController.add( "test");
Stream underTest = streamController.stream;
underTest.first.then(expectAsync((e){
expect( e, equals( "test"));
}));
});
}