Dart FakeAsync package似乎具有与quiver.testing.async inside the Quiver package相同的功能,所以对于Flutter and Dart应用开发人员,我对使用哪个感到困惑。
在特定情况下,是否应该在另一个上使用一个?任一软件包的文档中均未对此提供任何指导。这两个软件包似乎都是由Google Flutter和Dart团队的成员创作和维护的,这更加令人困惑。
我唯一能看到的是FakeAsync软件包最近一次更新是在2018年7月,而Quiver是在2019年11月,那么FakeAsync是否已被弃用?如果是这样的话,就没有这样的标签。目前,还有少数 core 软件包依赖于FakeAsync,而大量的多样化软件包则依赖于颤动(尽管无法知道它们是否依赖于颤动testing.async
)。 / p>
答案 0 :(得分:2)
我试图(以有限的成功率)研究混乱的历史。
FakeAsync
was a third-party contribution to quiver
,几个月后,作者forked package:fake_async
from quiver
's version。我不知道拥有两个单独的实现的理由是什么,但是我可以猜测,也许作者想对代码进行更直接的控制。 (换句话说,package:fake_async
最初不是Google创作或拥有的。)
我四处询问,我的理解是package:fake_async
不再得到维护,Google的Dart团队最终获得了package:fake_async
的所有权,因此可以为Dart 2更新。
从package:fake_async
's changelog看来,它确实是quiver
版本的超集,但此后的实现方式有所不同,因此不再完全向后兼容。
在这一点上,我个人将使用 quiver
版本:它得到了更好的维护,这是Flutter所使用的版本,因此我希望它背后具有更多的惯性。
我还提交了https://github.com/dart-lang/fake_async/issues/16,要求将指南添加到文档中。
我现在建议使用package:fake_async
。 Flutter朝另一个方向移动,改为改用package:fake_async
。 package:fake_async
已更新为quiver
版本的适当超集。另请参见https://github.com/google/quiver-dart/issues/590。