Kerangka apa yang ada untuk unit test kode Objective-C? Saya ingin kerangka kerja yang terintegrasi dengan baik dengan Apple Xcode.
Kerangka apa yang ada untuk unit test kode Objective-C? Saya ingin kerangka kerja yang terintegrasi dengan baik dengan Apple Xcode.
Jawaban:
Xcode mencakup XCTest, yang mirip dengan OCUnit , kerangka kerja pengujian unit Objective-C, dan memiliki dukungan penuh untuk menjalankan tes unit berbasis XCTest sebagai bagian dari proses pembangunan proyek Anda. Dukungan pengujian unit Xcode dijelaskan dalam Ikhtisar Xcode: Menggunakan Tes Unit .
Kembali ke Xcode 2 hari, saya menulis serangkaian posting weblog tentang bagaimana melakukan beberapa tugas umum dengan pengujian unit Xcode:
Meskipun menggunakan OCUnit daripada XCTest, konsepnya sebagian besar sama.
Akhirnya, saya juga menulis beberapa posting tentang cara menulis tes untuk antarmuka pengguna Kakao; cara Cocoa terstruktur membuatnya relatif mudah, karena Anda tidak perlu memutar loop peristiwa atau semacamnya dalam kebanyakan kasus.
Hal ini memungkinkan untuk melakukan pengembangan yang digerakkan oleh tes tidak hanya untuk kode level model Anda tetapi juga kode level controller dan bahkan level tampilan Anda.
Lihat GHUnit oleh Gabriel Handford:
"Tujuan GHUnit adalah:
Menjalankan pengujian unit dalam XCode, memungkinkan Anda untuk sepenuhnya memanfaatkan XCode Debugger. GUI sederhana untuk membantu Anda memvisualisasikan tes Anda. Tampilkan jejak tumpukan. Dapat diinstal sebagai kerangka kerja (untuk aplikasi Cocoa) dengan pengaturan target yang sederhana (atau tidak); atau mudah dimasukkan ke dalam proyek iPhone Anda. "
Saya mulai menggunakan rig pengujian kotak alat Google untuk iPhone, dan itu berhasil bagi saya.
Lihat OCUnit . Jaringan pengembang Apple memiliki pengenalan yang bagus .
Perhatikan bahwa proyek Google Toolbox untuk Mac (GTM) hanya memperluas / menambah kerangka kerja SenTestingKit Apple (yang didasarkan pada OCUnit). Seperti yang mereka katakan di situs proyek:
GTM memiliki beberapa peningkatan pada SenTestingKit standar yang memungkinkan Anda melakukan pengujian unit UI, pengujian unit mengikat otomatis, pelacakan log, dan pengujian unit pada iPhone, serta alat untuk melakukan pengujian statis dan dinamis kode Anda.
Perhatikan komentar berikut tentang pengujian antarmuka pengguna:
GTM memiliki dukungan luas untuk pengujian unit antarmuka pengguna. Ini mendukung pengujian baik pencitraan dan / atau keadaan internal dari hampir semua objek UI Kakao / UIKit standar, dan membuatnya mudah bagi Anda untuk memperluas dukungan ini ke objek UI Anda sendiri.
Lihat halaman " Verifikasi Kode dan Pengujian Unit " untuk instruksi tentang cara menggunakannya.
Saya sampai pada kesimpulan bahwa GHUnit adalah kerangka pengujian paling canggih untuk Objective-C. Saya telah melakukan pengumpulan kerangka kerja pengujian di blog saya. Ini adalah yang paling fleksibel dalam hal penyebaran (iphone, simulator atau mac os native) dan menegaskan kemampuan. Karena didasarkan pada GTM, ia mewarisi semua kelebihan GTM dibandingkan SenTestingKit tetapi juga menambahkan lebih banyak. Bonus lainnya adalah tetap dipertahankan dengan sangat aktif.
Saya telah melakukan upaya untuk mengintegrasikan OCMock ke GHUnit, ini bekerja dengan sangat baik !. Anda bisa mendapatkan kode di github .
Saya menyadari ini adalah pertanyaan lama, tetapi jika Anda lebih suka pengujian gaya BDD (rspec, Jasmine, dll.) Daripada pengujian gaya xUnit (Uji :: Unit, JSUnit, JUnit, dll.), Maka Anda dapat mempertimbangkan untuk memeriksa Cedar . Cedar membawa pengujian gaya BDD ke Objective-C, sekarang bahasanya mendukung penutupan.
Kami dengan senang hati menggunakan Cedar untuk proyek iOS kami di Pivotal Labs , dan kami secara aktif berupaya memperbaikinya. Setiap umpan balik atau saran diterima di cedar-discuss@googlegroups.com
Saya juga akan merekomendasikan menggunakan alat cakupan untuk melihat bagian mana dari kode yang ditutupi dengan tes unit dan mana yang tidak. Cakupan garis dasar dan kode cabang dapat dihasilkan dengan alat GCOV . Jika Anda ingin menghasilkan laporan cakupan HTML yang bagus, ada LCOV dan ZCOV yang melakukan hal itu.
Saya merekomendasikan gh-unit, ia memiliki GUI yang bagus untuk hasil tes.
The dukungan Unit Testing dibundel dalam Xcode (untuk setup sederhana) dikombinasikan dengan ocrunner (untuk beberapa autotest / Growl kebaikan) saat ini sedang diatur favorit saya obj-C Unit Testing.
di sini banyak sekali dari mereka
Sen: te (pencipta kerangka pengujian yang disertakan dengan Xcode) menjelaskan cara menggunakan OCUnit dengan proyek iPhone: simple-iphone-ipad-unit-test .
Matt Gallagher dari Cocoa with Love memiliki artikel yang sangat bagus tentang pengujian unit.
Saya sarankan melihat ke Kiwi, kerangka kerja pengujian BDD open source untuk iOS: Kiwi
Lihatlah WIKI proyek untuk memulai atau mendapatkan buku Daniel Steinberg "Uji Mengemudi Pengembangan iOS dengan Kiwi" test-driving-ios-development
Saya menggunakan SimpleUnitTest berfungsi dengan iPhone dan iPad libs.
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
Itu datang dengan Templat Xcode tes unit untuk dengan mudah menambahkan kelas uji unit. Membungkus GTM.
Anda benar-benar dapat menjatuhkannya ke proyek aktif dan mulai menambahkan tes unit dalam 3 menit (atau kurang).
Specta adalah kerangka kerja TDD (Test Driven Development) / BDD (Behavior Driven Development) modern yang berjalan di atas XCTest. Ini mendukung pengujian unit untuk proyek iOS dan Mac OS X.