Autofixture: NSubstitute 依赖方法讨论

创建于 2017-07-21  ·  3评论  ·  资料来源: AutoFixture/AutoFixture

目前AutoNSubstitute项目依赖于NSubstitute 1.5 。 但是,当前的集成存在重大问题和限制(参见 #720、#592、#707 和 #653)。 有一种方法可以修复它们,但是我们只需要 NSubstitute 2.0.2中出现的 API。 因此,我们需要决定如何处理这个胶水库。

方式 1 - 保持单个AutoNSubstitute项目

通过这种方式,我们继续当前的AutoNSubstitute项目,但将 NSubstitute 依赖增加到2.0.2 。 我们将仅在 v4 中引入此更改,并在 Breaking Changes 页面上进行描述,因此这应该不是问题。

__优点:__

  • 我们将要支持的项目少两个(胶水 + 测试)😉
  • 少混乱。 我们需要一个从未使用过的 lib 版本来执行错误修复和更改行为(支持泛型)。 如果我们仅在 v2 中实现它,对于不同的胶水库,行为是不同的,这可能会令人困惑。 据我所知,目前所有版本的胶水库都提供相同的功能。

方式 2 - 创建AutoNSubstitute2项目

当我们想要支持另一个版本的库时,通常我们会采用这种方式。 但是,在这种情况下,AFAIK 项目的存在是由重大更改而不是功能限制引起的(如果我清楚地看到的话)。

__优点:__

  • 我们继续支持所有 NSubstitute 图书馆
  • 原始 NSubstitute 没有重大更改,因此使用 v4 会更容易(可以逐步迁移解决方案)。 用户可以选择何时切换到 NSubstitute 2 和新的胶水库。

__缺点:__

  • AutoNSubstitute库仍然与NSubstitute 2.0.0兼容,所以有两个兼容版本的胶水库会有点混乱。 当然,我们可以人为地为 AutoNSubstitute v1 设置一个上限,但是这个限制将是一个小谎言,因为二进制一切都很好😞

就我个人而言,我在这里没有强烈的意见,因为我认为这两种方法都有价值。 但是,如果我被迫选择,我更喜欢方式 1,因为它更容易,而且 NSubstitute 2没有重大更改,因此迁移到它不会有问题。

@AutoFixture/core 你怎么看? ;-)

question

所有3条评论

是的,需要维护的东西越少,前进就越容易。 我投票给1

投票给 1。

在#832 中采用了这种方法,所以现在我们需要 NSubstitute 2 进行集成。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

mjfreelancing picture mjfreelancing  ·  4评论

zvirja picture zvirja  ·  8评论

JoshKeegan picture JoshKeegan  ·  6评论

joelleortiz picture joelleortiz  ·  4评论

zvirja picture zvirja  ·  8评论