Kapan saya harus menggunakan spesifikasi untuk aplikasi Rails dan kapan Cucumber (sebelumnya rspec-stories)? Saya tahu bagaimana keduanya bekerja dan secara aktif menggunakan spesifikasi, tentu saja. Tapi masih terasa aneh menggunakan Timun. Pandangan saya saat ini tentang hal ini, adalah nyaman menggunakan Ketimun saat Anda menerapkan aplikasi untuk klien dan belum memahami bagaimana keseluruhan sistem seharusnya bekerja.
Tetapi bagaimana jika saya melakukan proyek saya sendiri? Untuk sebagian besar waktu, saya tahu bagaimana bagian-bagian sistem berinteraksi. Yang perlu saya lakukan adalah menulis sekumpulan tes unit. Apa situasi yang mungkin terjadi ketika saya membutuhkan Mentimun?
Dan, sebagai pertanyaan kedua yang sesuai: apakah saya harus menulis spesifikasi jika saya menulis cerita Mentimun? Bukankah ini merupakan pengujian ganda untuk hal yang sama?
Jawaban:
Jika Anda belum melakukannya, Anda mungkin ingin melihat artikel bagus Dan North, What's in a Story? sebagai titik awal.
Kami memiliki dua kegunaan utama cerita Ketimun. Pertama, karena bentuk cerita sangat spesifik, ini membantu memfokuskan artikulasi pemilik produk terhadap fitur yang ingin dibangunnya. Ini adalah penggunaan cerita "token untuk percakapan", dan akan sangat berharga baik kita menerapkan cerita dalam kode atau tidak. Kedua, ketika proses berjalan cukup baik sehingga kami memiliki cerita lengkap sebelum kami mulai menulis fitur (lebih dari cita-cita yang kami perjuangkan daripada kenyataan sehari-hari), Anda memiliki kriteria penerimaan yang dijabarkan dengan jelas dan Anda tahu persis apa dan bagaimana banyak yang harus dibangun.
Dalam pekerjaan Rails kami, cerita Ketimun tidak menggantikan tes unit rspec. Kedua berjalan beriringan. Dalam praktiknya, pengujian unit cenderung mendorong pengembangan model dan pengontrol, dan story cenderung mendorong pengembangan tampilan (kami cenderung tidak menulis rspec untuk tampilan kami) dan memberikan pengujian yang baik untuk aplikasi secara keseluruhan dari perspektif pengguna.
Jika Anda bekerja sendiri, aspek komunikasi mungkin tidak begitu menarik bagi Anda, tetapi pengujian integrasi yang Anda dapatkan dari Mentimun mungkin saja menarik. Jika Anda memanfaatkan webrat , menulis Ketimun bisa cepat dan tidak menyakitkan untuk banyak fungsi dasar Anda.
sumber
Anggap saja sebagai siklus:
Tulis fitur Mentimun Anda, lalu saat mengembangkan bagian untuk fitur tersebut, tulis spesifikasi untuk melengkapi komponen individual. Lanjutkan melengkapi spesifikasi hingga Anda telah menulis fungsionalitas yang cukup agar fitur dapat lolos, lalu tulis fitur Anda berikutnya.
sumber
Pendapat saya adalah bahwa menggunakan Mentimun dalam banyak situasi adalah ide yang buruk karena biaya produktivitas yang ditimbulkan oleh sintaksnya pada Anda. Saya banyak menulis tentang topik di Mengapa Repot-Repot Dengan Tes Ketimun?
sumber
Kisah Mentimun lebih merupakan deskripsi dari keseluruhan masalah yang dipecahkan aplikasi Anda, daripada jika bit kode individual berfungsi (yaitu tes unit).
Seperti yang dijelaskan Abie, ini hampir merupakan daftar persyaratan yang harus dipenuhi aplikasi, dan sangat membantu untuk komunikasi dengan klien Anda, serta dapat diuji secara langsung.
sumber
Saat ini Anda dapat menggunakan rspec dengan Capybara dan Selenium Webdriver dan menghindari keharusan membangun dan memelihara semua pengurai cerita Ketimun. Inilah yang akan saya rekomendasikan:
Satu hal yang perlu diperhatikan, bagaimanapun, adalah bahwa tes pengontrol dan integrasi memiliki tumpang tindih yang mungkin tidak diperlukan sehingga Anda harus menggunakan penilaian terbaik Anda sehingga Anda tidak membuang waktu Anda.
Juga, begitu Anda menemukan alur Anda, Anda akan merasa paling menyenangkan untuk mengembangkan menggunakan BDD, sampai saat itu jangan merasa bersalah jika Anda merasa tidak melakukannya dengan sempurna dan tidak terlalu memikirkannya. Anda akan melakukannya dengan baik!
sumber
Anda masih membutuhkan Timun. Anda memerlukannya untuk mendokumentasikan bagaimana Anda melihat sistem bekerja, dan Anda memerlukannya untuk memastikan Anda tidak merusak fungsionalitas saat Anda mengubah sesuatu.
Dengan kata lain, Anda memerlukan cerita Ketimun untuk alasan yang sama seperti Anda memerlukan tes unit - mereka hanya bekerja pada tingkat abstraksi yang lebih tinggi.
sumber