Dalam meneliti unit pengujian praktik terbaik untuk membantu menyusun pedoman untuk organisasi saya, saya telah mengalami pertanyaan apakah lebih baik atau berguna untuk memisahkan perlengkapan pengujian (kelas uji) atau untuk menyimpan semua tes untuk satu kelas dalam satu file.
Namun, saya mengacu pada "tes unit" dalam arti murni bahwa itu adalah tes kotak putih yang menargetkan kelas tunggal, satu pernyataan per tes, semua dependensi diejek, dll.
Skenario contoh adalah kelas (sebut saja Dokumen) yang memiliki dua metode: CheckIn dan CheckOut. Setiap metode mengimplementasikan berbagai aturan, dll. Yang mengontrol perilaku mereka. Mengikuti aturan satu-pernyataan-per-tes, saya akan memiliki beberapa tes untuk setiap metode. Saya bisa menempatkan semua tes dalam satu DocumentTests
kelas dengan nama seperti CheckInShouldThrowExceptionWhenUserIsUnauthorized
dan CheckOutShouldThrowExceptionWhenUserIsUnauthorized
.
Atau, saya dapat memiliki dua kelas tes terpisah: CheckInShould
dan CheckOutShould
. Dalam hal ini, nama pengujian saya akan disingkat tetapi akan diatur sehingga semua tes untuk perilaku (metode) tertentu bersamaan.
Saya yakin ada pro dan kontra untuk pendekatan baik dan saya bertanya-tanya apakah ada yang telah mengambil rute dengan beberapa file dan, jika demikian, mengapa? Atau, jika Anda memilih pendekatan file tunggal, mengapa Anda merasa lebih baik?
testResponseContainsSuccessTrue()
, testResponseContainsMyData()
dan testResponseStatusCodeIsOk()
. Anda akan memiliki mereka dalam satu testResponse()
yang telah tiga menegaskan: assertEquals(200, response.status)
, assertEquals({"data": "mydata"}, response.data)
danassertEquals(true, response.success)