Autofixture: NDiscussão de abordagem de dependência substituta

Criado em 21 jul. 2017  ·  3Comentários  ·  Fonte: AutoFixture/AutoFixture

Atualmente, o projeto AutoNSubstitute depende do NSubstituto 1.5 . No entanto, a integração atual sofre de problemas e limitações significativas (consulte # 720, # 592, # 707 e # 653). Existe uma maneira de corrigi-los, no entanto, precisamos da API que apareceu no NSubstitute 2.0.2 apenas. Portanto, precisamos decidir como procederemos com esta biblioteca de cola.

Caminho 1 - Manter o projeto AutoNSubstitute único

Desta forma, continuamos com o projeto AutoNSubstitute atual, mas aumentamos a dependência NSubstitute para 2.0.2 . Apresentaremos essa alteração apenas na v4 e a descreveremos na página Alterações importantes, de modo que não deve ser um problema.

__Pros: __

  • Teremos dois projetos a menos para apoiar (cola + testes) 😉
  • Menos confusão. Precisamos de uma versão never do lib para corrigir o bug e mudar o comportamento (suporte genérico). Se implementarmos isso apenas na v2, pode ser bastante confuso que, para diferentes bibliotecas de cola, o comportamento seja diferente. Pelo que eu sei, atualmente todas as versões de uma biblioteca de cola oferecem a mesma funcionalidade.

Caminho 2 - Criar o projeto AutoNSubstitute2

Normalmente seguimos esse caminho quando queríamos oferecer suporte a outra versão da biblioteca. No entanto, a AFAIK, nesses casos, a presença do projeto foi causada pelas alterações significativas em vez da limitação de funcionalidade (se é que vejo isso claramente).

__Pros: __

  • Continuamos a apoiar todas as bibliotecas NSubstitute
  • Sem alterações significativas para o NSubstitute original, seria mais fácil consumir v4 (será possível migrar a solução passo a passo). Os usuários terão a capacidade de escolher quando desejam mudar para o NSubstitute 2 e uma nova biblioteca de cola.

__Cons: __

  • A biblioteca AutoNSubstitute ainda é compatível com NSubstitute 2.0.0 , então seria um pouco complicado ter duas versões compatíveis da biblioteca cola. Claro, poderíamos definir artificialmente um limite para AutoNSubstitute v1, mas essa limitação será uma pequena mentira, pois tudo binário está bem 😞

Pessoalmente, não tenho uma opinião forte aqui porque vejo um valor em ambas as abordagens. No entanto, se eu for forçado a escolher, prefiro o caminho 1 porque é mais fácil e o NSubstitute 2 não tem alterações significativas, então não seria um problema migrar para ele.

@ AutoFixture / core O que você acha? ;-)

question

Todos 3 comentários

Sim, quanto menos coisas para manter, mais fácil será seguir em frente. Estou votando em 1 .

Vote em 1.

Seguimos essa abordagem em # 832, então agora exigimos NSubstitute 2 para nossa integração.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

ploeh picture ploeh  ·  3Comentários

Ephasme picture Ephasme  ·  3Comentários

josh-degraw picture josh-degraw  ·  4Comentários

zvirja picture zvirja  ·  8Comentários

TroyHouston picture TroyHouston  ·  6Comentários