Lihatlah laporan JUnit. JUnit sudah diatur oleh paket. Setiap paket memiliki (atau dapat memiliki) kelas TestSuite, yang masing-masing menjalankan beberapa TestCases. Setiap TestCase dapat memiliki beberapa metode pengujian formulirpublic void test*()
, yang masing-masing akan benar-benar menjadi turunan dari kelas TestCase yang menjadi tempatnya. Setiap metode pengujian (contoh TestCase) memiliki nama dan kriteria lulus / gagal.
Apa yang dibutuhkan manajemen saya adalah konsep TestStep individu item , yang masing-masing melaporkan kriteria lulus / gagal sendiri. Kegagalan langkah uji tidak boleh mencegah pelaksanaan langkah uji selanjutnya.
Di masa lalu, pengembang pengujian di posisi saya mengatur kelas TestCase ke dalam paket yang sesuai dengan bagian produk yang diuji, membuat kelas TestCase untuk setiap tes, dan menjadikan setiap metode uji sebagai "langkah" terpisah dalam pengujian, lengkap dengan kriteria lulus / gagal sendiri dalam output JUnit. Setiap TestCase adalah "tes" mandiri, tetapi metode individual, atau uji "langkah" dalam TestCase, harus terjadi dalam urutan tertentu.
Metode TestCase adalah langkah-langkah dari TestCase, dan perancang tes mendapat kriteria lulus / gagal per langkah uji. Sekarang langkah-langkah tes dicampuradukkan, dan tes (tentu saja) gagal.
Sebagai contoh:
Class testStateChanges extends TestCase
public void testCreateObjectPlacesTheObjectInStateA()
public void testTransitionToStateBAndValidateStateB()
public void testTransitionToStateCAndValidateStateC()
public void testTryToDeleteObjectinStateCAndValidateObjectStillExists()
public void testTransitionToStateAAndValidateStateA()
public void testDeleteObjectInStateAAndObjectDoesNotExist()
public void cleanupIfAnythingWentWrong()
Setiap metode pengujian menegaskan dan melaporkan sendiri kriteria lulus / gagal. Menjatuhkan ini ke dalam "satu metode uji besar" demi memesan kehilangan rincian lulus / gagal kriteria setiap "langkah" dalam laporan ringkasan JUnit. ... dan itu mengganggu manajer saya. Mereka saat ini menuntut alternatif lain.
Adakah yang bisa menjelaskan bagaimana JUnit dengan pemesanan metode pengujian acak akan mendukung kriteria lulus / gagal terpisah dari setiap langkah uji berurutan, seperti yang dicontohkan di atas dan diperlukan oleh manajemen saya?
Terlepas dari dokumentasi, saya melihat ini sebagai regresi serius dalam kerangka JUnit yang membuat hidup sulit bagi banyak pengembang pengujian.