Bagaimana untuk memulai pada TDD dengan Ruby on Rails?

Saya akrab dengan konsep-konsep (mengambil pengujian kelas-kelas di perguruan tinggi), tapi saya tidak yakin bagaimana untuk benar-benar menggunakannya namun karena saya tidak pernah bekerja pada sebuah "nyata" TDD proyek.

Saya akan memulai pengembangan proyek yang menggunakan Ruby on Rails (kemungkinan besar menggunakan 2.3). Aplikasi ini akan digunakan untuk mengelola data-data, pengguna, dan beberapa file. Itu tidak't menjadi terlalu rumit pada awalnya, tetapi mungkin skala banyak dalam 6 bulan ke depan sehingga saya merasa ini adalah waktu yang tepat untuk mendapatkan lebih banyak ke TDD.

I've punya ide dasar tentang bagaimana untuk melakukan itu, tapi saya masih perlu beberapa petunjuk dan nasihat:

  • Apa yang Ruby on Rails TDD 101 artikel harus saya baca?

  • Apa yang perlu saya lakukan untuk menguji?

  • Apa yang permata/plugin yang harus saya gunakan?

  • Saya harus menggunakan rspec? Sesuatu yang lain?

  • Setelah saya've punya semua pengujian kelas, bagaimana aku pergi dan menyebarkan mereka? (misalnya: Terus-menerus Integrasi)

  • Bagaimana memakan waktu TDD benar-benar adalah?

  • Apakah saya perlu untuk membaca sebuah buku tentang hal ini, atau saya bisa mendapatkan semuanya hanya dengan bermain-main dengan itu dan membaca tutorial online? Jika saya perlu untuk membaca buku, buku apa?


Saya suka belajar dengan contoh-contoh sehingga bisa seseorang mengatakan padaku bagaimana aku akan pergi dan mengambil TDD pendekatan untuk memecahkan masalah ini:

aku memiliki Perusahaan. Aku punya Kontak. A kontak dapat dihubungkan dengan 1 perusahaan. A perusahaan dapat mempunyai beberapa kontak. Saya ingin menciptakan cara-cara untuk membuat kontak, perusahaan dan link kontak untuk perusahaan.

Anda don't harus menggunakan contoh ini dalam jawaban anda, tapi itu akan membantu :)

Larutan

Apa yang Ruby on Rails TDD 101 artikel yang harus saya baca?

Saya akan mulai dengan [panduan untuk pengujian aplikasi rails][1].

Juga [Railscast][2] memiliki beberapa screencasts tentang cara menggunakan berbagai alat-alat pengujian.

Apa yang saya butuhkan untuk tes?

Saya akan mulai dengan model, karena mereka mudah untuk menguji. Aturan sederhana ini adalah bahwa anda perlu untuk menutupi setiap pernyataan jika di tes anda.

Anda harus menguji tujuan dari metode ini (untuk memastikan itu berfungsi seperti yang diharapkan) serta semua kasus tepi.

Juga pastikan anda don't berakhir pengujian.

Apa yang permata/plugin yang harus saya gunakan? Saya harus menggunakan rspec? Sesuatu yang lain?

Ketika anda mulai, hanya menggunakan [Test Unit][3]. Anda dapat menggunakan [rspec][4] atau [mentimun][5] setelah anda mendapatkan akrab dengan dasar-dasar.

[Autotest][6] adalah alat yang bagus untuk memiliki jika anda ingin menjadi benar-benar menguji didorong. Tapi itu adalah 'bagus memiliki' tidak diperlukan.

Setelah saya've punya semua pengujian kelas bagaimana saya pergi dan menyebarkan mereka?

Tidak yakin tentang pertanyaan. Anda don't biasanya menggunakan tes. Setelah anda memiliki semua pengujian kelas sederhana type 'menyapu tes' untuk menjalankan semua tes anda.

Cara memakan waktu TDD benar-benar adalah?

Menghemat waktu benar-benar. Jika anda suka labirin teka-teki, anda tahu itu hampir selalu lebih mudah untuk memecahkan jika anda pergi dari finish untuk memulai. Sama dengan TDD. Tanpa Test Driven anda secara konsisten berpikir 'apa yang harus saya lakukan berikutnya'. Dengan Test Driven, tes ini akan memberitahu anda apa yang harus dilakukan selanjutnya (rusak jika logika tidak ada jadi anda hanya perlu untuk memperbaiki bagian yang rusak). Anda juga memiliki lebih sedikit bug yang akan menghemat banyak waktu dalam jangka panjang.

Apakah saya perlu untuk membaca buku tentang ini atau saya bisa mendapatkan semuanya hanya dengan bermain main dengan itu dan membaca online tutorial? Jika saya perlu untuk membaca buku, buku apa?

Anda tidak perlu sebuah buku. Cara yang paling efisien untuk belajar sesuatu adalah: just do it. Kembali ke buku atau sumber daya online setelah anda mengalami pertanyaan atau masalah. Ini adalah lincah juga.

Dalam contoh anda, hal-hal yang perlu pengujian adalah: kontak dapat dihubungkan dengan 1 perusahaan, perusahaan dapat memiliki beberapa kontak, menciptakan cara-cara untuk membuat kontak, dan link kontak untuk perusahaan.


class CompanyTest 
Komentar (5)

I've menghasilkan 6-episode seri video yang diajar sebagai kelas yang umum di San Francisco pada musim panas 2010. Materi meliputi pengujian dan pengembang efisiensi di Rel 2.3 menggunakan RSpec 1.3. Sedikit tanggal, tetapi konsep utama yang berlaku untuk Rel 3 dengan Rspec 2.x

http://www.rubyfocus.biz/class_video/2010/07/19/rails_tdd_class_1.html

Komentar (0)

Saya merekomendasikan buku ini: Ruby on Rails Tutorial. I'm hampir selesai dengan itu. Buku ini menggunakan TDD yang seluruh buku ini. Mencobanya!

Komentar (2)

Saya merekomendasikan buku ini: Agile Web Development with Rails

Komentar (0)

TDD adalah semua tentang menulis tes pertama. Ini pada dasarnya memaksa anda untuk menulis anda sendiri klien sebelum anda menulis kode aplikasi anda. Siklus ini umumnya menulis tes untuk API yang doesn't ada, menjalankan tes mengharapkan untuk gagal, pergi mendapatkan kode API, menjalankan tes lagi dan pastikan itu berlalu. Kemudian menulis tes berikutnya... dan sebagainya.

Anda juga mungkin tertarik dalam hal ini Rel panduan.

Komentar (1)

Saya gunakan :

  1. Seharusnya dan rspec untuk pengujian
  2. Mocha untuk mengejek
  3. Factory_girl untuk pabrik
  4. parallel_specs untuk lebih cepat pengujian
  5. metric_fu untuk analisis kode
Komentar (0)

Apa yang permata/plugin yang harus saya gunakan?

I've selalu menikmati seharusnya.

Cara memakan waktu TDD benar-benar adalah?

Alasan saya've selalu disukai TDD pengembangan yang berfokus bagaimana saya akan melaksanakan bagian tertentu dari kode. Saya memiliki sebuah anekdot merasa bahwa setiap kali saya berpegang lebih kuat untuk TDD prinsip saya menghabiskan lebih sedikit waktu pengerjaan ulang nanti. Jumlah waktu yang dihabiskan adalah semua dalam seberapa baik anda menulis unit test sekalipun. Jika unit tes don't menangkap perilaku yang diharapkan, semua waktu yang dihabiskan pada mereka yang terbuang.

Komentar (0)