Pertanyaan Anda tampaknya dua kali lipat bagi saya. Di satu sisi Anda ingin membandingkan dua kerangka kerja pengujian, di sisi lain Anda ingin menerapkan tes dengan mudah, memiliki pernyataan alami, dll ...
Ok, pertama JUnit telah bermain mengejar ketinggalan dengan TestNG dalam hal fungsionalitas, mereka telah menjembatani kesenjangan beberapa apa dengan v4, tetapi menurut saya tidak cukup baik. Hal-hal seperti anotasi dan penyedia data masih jauh lebih baik di TestNG. Mereka juga lebih fleksibel dalam hal eksekusi uji, karena TestNG memiliki ketergantungan, pengelompokan, dan pengurutan uji.
JUnit masih memerlukan metode tertentu sebelum / sesudah menjadi statis, yang membatasi apa yang dapat Anda lakukan sebelum menjalankan pengujian, TestNG tidak pernah mengalami masalah ini.
TBH, sebagian besar perbedaan antara kedua kerangka tidak berarti banyak, kecuali jika Anda berfokus pada pengujian integrasi / otomatisasi. JUnit dari pengalaman saya dibangun dari bawah ke atas untuk pengujian unit dan sekarang didorong ke tingkat pengujian yang lebih tinggi, yang menurut IMO menjadikannya alat yang salah untuk pekerjaan itu. TestNG bekerja dengan baik pada pengujian unit dan karena penyediaan data yang kuat dan kemampuan eksekusi pengujian yang hebat, bekerja lebih baik pada tingkat pengujian integrasi / otomatisasi.
Sekarang untuk apa yang saya yakini adalah masalah terpisah, bagaimana menulis tes yang terstruktur dengan baik, dapat dibaca dan dipelihara. Sebagian besar dari ini saya yakin Anda tahu, tetapi hal-hal seperti Pola Pabrik , Pola Perintah , dan PageObjects (jika situs pengujian Anda) sangat penting, sangat penting untuk memiliki lapisan abstraksi antara apa pengujian Anda (SUT) dan apa pengujian yang sebenarnya. adalah (pernyataan logika bisnis). Untuk mendapatkan pernyataan yang jauh lebih bagus, Anda dapat menggunakan Hamcrest . Memanfaatkan javas inheritance / interfaces untuk mengurangi pengulangan dan menegakkan kesamaan.
Hampir lupa, gunakan juga Test Data Builder Pattern , ini digabungkan dengan anotasi penyedia data TestNG sangat berguna.