FakeAsync和quiver.testing.async有什么区别?

时间:2020-02-10 03:00:33

标签: flutter dart

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>

1 个答案:

答案 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_asyncpackage:fake_async已更新为quiver版本的适当超集。另请参见https://github.com/google/quiver-dart/issues/590

相关问题