Saya ingin mencoba dan mengimplementasikan beberapa TDD dalam aplikasi web kami untuk mengurangi regresi dan meningkatkan kualitas rilis, tetapi saya tidak yakin seberapa baik pengujian otomatis dapat melakukan sesuatu dengan fluffy seperti aplikasi web.
Saya sudah membaca dan mencoba TDD dan pengujian unit, tetapi contohnya adalah fungsi 'solid' dan agak sederhana seperti konverter mata uang, dan sebagainya.
Apakah ada sumber daya yang dapat membantu unit manajemen pengujian konten dan sistem publikasi? Bagaimana dengan unit yang menguji keranjang belanja / toko (produk fisik dan online)? AJAX?
Googling untuk "Pengembangan Web Test Driven" hanya membuat saya artikel lama dari beberapa tahun yang lalu baik yang mencakup contoh yang sama dari fungsi seperti kalkulator atau diskusi tentang mengapa TDD lebih baik daripada apa pun (tanpa contoh).
sumber
Jawaban:
Penafian besar: Saya belum membuat aplikasi web apa pun dan saya belum menguji aplikasi web apa pun. Berikut ini hanya beberapa informasi yang telah saya serap secara acak dalam lingkup informasi.
Bangun aplikasi web Anda sedemikian rupa sehingga dapat menguji aturan bisnis secara terpisah. Jika Anda menemukan diri Anda menguji aturan bisnis melalui antarmuka pengguna maka mungkin sudah saatnya untuk memikirkan mendesain ulang.
Ketika datang untuk menguji UI, ganti aturan bisnis Anda dengan implementasi tiruan yang merespons dengan cara yang dapat diprediksi.
Dua aturan di atas diambil dari ceramah Bob Martin di RailsConf 2010 . Pembicaraan itu bukan tentang TDD dan bagian di mana ia menyebutkan pengujiannya pendek dan di suatu tempat di tengah.
Ada alat seperti JsUnit , JSSpec , YUI Test untuk pengujian JavaScript dan Selenium dan Watir untuk pengujian UI.
Rak Buku Pragmatis memiliki beberapa buku yang mencakup pengujian aplikasi web. Daftar buku yang ditandai dengan Pengujian ada di http://www.pragprog.com/categories/design . Buku-buku pengujian aplikasi web Rak Buku Pragmatis terutama difokuskan di sekitar Ruby dan Rails tetapi harus berlaku secara umum.
sumber
Test-Driven JavaScript Development adalah buku yang sangat bagus dari Christian Johansen, pengembang di belakang Sinon.js dan Buster.js , yang membahas topik-topik seperti (diambil dari situs web):
Saat ini kami menggunakan Sinon.js dengan Mocha, tetapi siap untuk beralih ke Buster.js, karena fitur-fiturnya sangat rapi!
sumber
Pada proyek yang saya kerjakan baru-baru ini pengembang utama telah memutuskan untuk menggunakan Unity sehingga ejekan dan TDD disederhanakan dalam aplikasi web besar - saya rasa penggunaan Unity akan sering disertai dengan TDD adalah aplikasi web.
Unit investigasi yang menguji CMS kemungkinan akan menemui jalan buntu karena tidak ada hal yang masuk akal untuk diejek. Saya tidak melihat apa yang bisa diuji tanpa mengolok-olok lalu lintas http ke halaman - dan pada saat itu pengujian memiliki nilai yang kecil.
Saya rasa aturan praktis yang berguna dengan aplikasi web adalah jika dapat menggunakan tiruan untuk mengurangi kompleksitas maka mungkin dapat diuji unit.
Jadi dalam aplikasi web Anda dapat mengejek basis data Anda untuk menguji unit-unit berbeda dari lapisan atau model akses data Anda; Anda dapat mengejek input pengguna untuk menguji unit tampilan atau UI dan sebagainya.
sumber
Saya telah menulis buku tentang TDD untuk pengembangan web dengan Python + Django. itu mencakup TDD, baik dengan tes end-to-end / fungsional (selenium) dan tes "unit" tingkat rendah. Saya juga membahas praktik dev modern seperti bagaimana mengintegrasikan git ke dalam alur kerja Anda, cara menyebar ke server dan mengotomatisasi dan mengujinya, integrasi terus-menerus, tiruan dan uji isolasi, dan banyak lagi:
http://www.obeythetestinggoat.com/
(atau http://shop.oreilly.com/product/0636920051091.do )
sumber