Saya belajar TDD menggunakan c #, sejauh yang saya tahu tes harus mendorong pengembangan , yaitu pertama - tama menulis tes gagal setelah menulis kode minimum untuk lulus tes kemudian melakukan refactoring.
Tetapi dikatakan juga bahwa " Program ke Antarmuka, bukan Implementasi ", jadi tulislah antarmuka terlebih dahulu . Di sinilah kebingungan saya dimulai, Jika saya menulis Antarmuka terlebih dahulu maka itu melanggar dua hal
Kode yang ditulis untuk antarmuka tidak didorong oleh tes .
Ini bukan minimum yang jelas saya bisa menulisnya dengan kelas sederhana.
Haruskah saya mulai dengan menulis tes untuk antarmuka juga? tanpa implementasi apa yang akan saya uji?
Jika pertanyaan ini terdengar konyol, maaf, tapi saya benar-benar bingung. Mungkin saya mengambil hal-hal yang terlalu harfiah.
contract
. Ini bisa dalam bentuk kelas abstrak, misalnya, meskipun seharusnya tidak menjadi kelas virtual / metode karena Anda seharusnya tidak dapat membuat instance itu.
interface
untuk segalanya. Aclass
juga menyediakan antarmuka, karena Anda dapat menyembunyikan detail implementasi dalamprivate
variabel.