Saya sedang menulis beberapa tes unit dan, karena sifat aplikasi ini, penting bahwa saya mendapatkan setinggi UI
mungkin rantai. Jadi, apa yang ingin saya lakukan adalah secara terprogram memicu tombol-tekan, seolah-olah pengguna telah menekan tombol di GUI
.
(Ya, ya - saya hanya bisa memanggil IBAction
pemilih tetapi, sekali lagi, sifat aplikasi ini membuatnya penting bahwa saya memalsukan tombol yang sebenarnya, sehingga IBAction
dipanggil dari tombol itu sendiri.)
Apa metode yang disukai untuk melakukan ini?
ios
iphone
uibutton
touch-event
Olie
sumber
sumber
Jawaban:
Ternyata itu
mendapatkan apa yang saya butuhkan, dalam hal ini.
Sunting: Jangan lupa melakukan ini di utas utama, untuk mendapatkan hasil yang mirip dengan pers pengguna.
Untuk Swift 3:
buttonObj.sendActions(for: .touchUpInside)
sumber
[myController myActionMethod:myButton1];
myActionMethod:
tidak publik, dan Anda tidak dapat memanggilnya secara langsung.Pembaruan untuk jawaban ini untuk Swift
EDIT : Diperbarui untuk Swift 3
sumber
Jika Anda ingin melakukan pengujian semacam ini, Anda akan menyukai dukungan UI Automation di iOS 4. Anda dapat menulis JavaScript untuk mensimulasikan penekanan tombol, dll. Cukup mudah, meskipun dokumentasi (terutama bagian yang memulai) sedikit jarang.
sumber
Swift 3:
sumber
Dalam hal ini,
UIButton
berasal dariUIControl
. Ini berfungsi untuk objek yang berasalUIControl
.Saya ingin menggunakan kembali
UIBarButtonItem
tindakan " " pada kasus penggunaan khusus. Di sini,UIBarButtonItem
tidak menawarkan metodesendActionsForControlEvents:
Tetapi untungnya,
UIBarButtonItem
memiliki sifat untuk target & tindakan.Di sini,
rightBarButtonItem
adalah tipeUIBarButtonItem
.sumber
Untuk Xamarin iOS
Referensi
sumber
Swift 4:
diri Anda. Tombol (diri)
sumber