Autofixture: Diskusi pendekatan ketergantungan pengganti

Dibuat pada 21 Jul 2017  ·  3Komentar  ·  Sumber: AutoFixture/AutoFixture

Saat ini proyek AutoNSubstitute bergantung pada NSubstitute 1.5 . Namun, integrasi saat ini mengalami masalah dan keterbatasan yang signifikan (lihat #720, #592, #707 dan #653). Ada cara untuk memperbaikinya, namun kita membutuhkan API yang hanya muncul di NSubstitute 2.0.2 . Oleh karena itu, kita perlu memutuskan bagaimana kita akan melanjutkan dengan perpustakaan lem ini.

Cara 1 - Pertahankan proyek AutoNSubstitute tunggal

Dengan cara ini kami melanjutkan proyek AutoNSubstitute ini tetapi meningkatkan ketergantungan NSubstitute ke 2.0.2 . Kami akan memperkenalkan perubahan ini hanya di v4 dan menjelaskannya di halaman Breaking Changes, sehingga seharusnya tidak menjadi masalah.

__Pro:__

  • Kami akan memiliki dua proyek lebih sedikit untuk didukung (lem + tes)
  • Kurang kebingungan. Kami membutuhkan versi lib yang tidak pernah ada untuk melakukan perbaikan bug dan mengubah perilaku (mendukung obat generik). Jika kita mengimplementasikannya di v2 saja, mungkin cukup membingungkan bahwa untuk pustaka lem yang berbeda perilakunya berbeda. Sejauh yang saya tahu, saat ini semua versi perpustakaan lem menawarkan fungsi yang sama.

Cara 2 - Buat proyek AutoNSubstitute2

Biasanya kami mengikuti cara ini ketika kami ingin mendukung versi perpustakaan yang lain. Namun, AFAIK dalam kasus itu kehadiran proyek disebabkan oleh perubahan yang melanggar daripada batasan fungsionalitas (jika saya melihatnya dengan jelas).

__Pro:__

  • Kami terus mendukung semua perpustakaan NSubstitute
  • Tidak ada perubahan yang melanggar untuk NSubstitute asli, sehingga akan lebih mudah untuk menggunakan v4 (dimungkinkan untuk memigrasikan solusi langkah demi langkah). Pengguna akan memiliki kemampuan untuk memilih kapan mereka ingin beralih ke NSubstitute 2 dan perpustakaan lem baru.

__Kekurangan:__

  • Pustaka AutoNSubstitute masih kompatibel dengan NSubstitute 2.0.0 , jadi akan sedikit berantakan jika memiliki dua versi pustaka lem yang kompatibel. Tentu saja, kita dapat secara artifisial menetapkan batas untuk AutoNSSubstitute v1, tetapi batasan itu akan menjadi kebohongan kecil karena biner semuanya baik-baik saja

Secara pribadi, saya tidak memiliki pendapat yang kuat di sini karena saya melihat nilai di kedua pendekatan. Namun jika terpaksa harus memilih, saya lebih memilih cara 1 karena lebih mudah dan NSubstitute 2 tidak memiliki perubahan yang mengganggu, sehingga tidak menjadi masalah untuk bermigrasi ke sana.

@AutoFixture/inti Bagaimana menurut Anda? ;-)

question

Semua 3 komentar

Ya, semakin sedikit barang yang harus dirawat, semakin mudah untuk bergerak maju. Saya memberikan suara untuk 1 .

Pilih 1.

Mengikuti pendekatan di #832, jadi sekarang kami membutuhkan NSubstitute 2 untuk integrasi kami.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat