У меня есть библиотека, в которой есть много асинхронных частей, и тестирование определенной ее части иногда может означать ожидание завершения n асинхронных процессов, прежде чем тест будет доступен для фактического запуска. Я использовал этот метод для достижения своих целей:
void expectAsyncWithReadyCheckAndTimeout(bool readyCheck(), int timeout, void expect()){
DateTime start = new DateTime.now();
Duration limit = new Duration(seconds: timeout);
var inner;
inner = (){
if(readyCheck()){
expect();
}else if(new DateTime.now().subtract(limit).isAfter(start)){
throw 'async test timed out';
}else{
Timer.run(expectAsync(inner));
}
};
inner();
}
это в основном продолжает работать до тех пор, пока тест не будет готов к запуску или пока не истечет указанный тайм-аут, есть ли способ добиться этого или чего-то подобного непосредственно с библиотекой dart unittest?