Dalam versi terbaru WP_UnitTestCase
sudah termasuk $factory
properti.
Sebagai contoh:
$post = $this->factory->post->create();
Di mana saya dapat menemukan dokumentasi tentang fitur yang bermanfaat ini?
sumber
Dalam versi terbaru WP_UnitTestCase
sudah termasuk $factory
properti.
Sebagai contoh:
$post = $this->factory->post->create();
Di mana saya dapat menemukan dokumentasi tentang fitur yang bermanfaat ini?
Sejauh yang saya tahu, tidak ada dokumentasi untuk saat ini. Sumber resmi ada di sini .
Saya juga telah menulis tutorial tentang pengujian unit plugin WordPress, yang memberikan beberapa detail tentang fitur ini .
Salah satu keuntungan menggunakan
WP_UnitTestCase
adalah pabriknya. Ini dapat diakses melaluifactory
variabel anggota. Inifactory
adalah objek dengan properti yang masing-masing merupakan instance dari salah satu kelas yang didefinisikan dalam include / factory.php . Apa yang mereka lakukan, Anda bertanya? Mereka membuatnya sangat sederhana untuk membuat pengguna, posting, istilah, dll., Di mana pun Anda membutuhkannya dalam pengujian Anda. Jadi, alih-alih melakukan ini:$args = array( /* A bunch of user data you had to make up */ ); wp_insert_user( $args );
Anda bisa melakukan ini:
$user_id = $this->factory->user->create();
Tapi tunggu, ini jadi lebih baik. Bagaimana jika Anda membutuhkan banyak pengguna (atau posting, atau apa pun)? Anda bisa membuatnya secara massal seperti ini:
$user_ids = $this->factory->user->create_many( 25 );
Itu akan membuat 25 pengguna yang dapat Anda gunakan dalam pengujian Anda.
The
factory
memiliki properti berikut yang dapat Anda gunakan:
$post
$attachment
$comment
$user
$term
$category
$tag
$blog
Semua itu dapat digunakan dengan cara yang sama seperti ditunjukkan dalam contoh di atas dengan
$user
pabrik. Misalnya, Anda dapat membuat posting seperti ini:
$this->factory->post->create();
Anda juga bisa menentukan argumen tertentu yang akan digunakan untuk membuat objek. Dalam contoh di atas kami membuat posting, tetapi tidak ditugaskan untuk pengguna tertentu (
post_author
bidang akan default ke0
). Terkadang kami mungkin menginginkan posting yang ditugaskan kepada pengguna sebagai gantinya. Kami akan melakukannya seperti ini:$user_id = $this->factory->user->create(); $post_id = $this->factory->post->create( array( 'post_author' => $user_id ) );
Selain itu, jika Anda membutuhkan lebih dari sekadar ID objek yang Anda buat, Anda tidak perlu melakukan ini:
$post_id = $this->factory->post->create(); $post = get_post( $post_id );
Sebagai gantinya, gunakan
create_and_get()
metode ini:// $post will be an instance of WP_Post $post = $this->factory->post->create_and_get();
Dalam contoh ini, kami menggunakan
post
pabrik, tetapi hal yang sama berlaku untuk semua pabrik.
Saya pikir saya akan menyebutkan ini kepada tim dokumen WordPress. Mungkin kita bisa memasukkan ini ke plugin dan buku pegangan tema.
Pembaruan (20 Juni 2015): Anda juga dapat membuat pabrik kustom sendiri !
Pembaruan (27 September 2016): Di WordPress 4.4 tes diperbarui untuk memberikan factory()
metode statis untuk mengakses pabrik, meskipun factory
properti masih disediakan melalui pembuat sihir.
Kode sumber di
https://github.com/rnagle/wordpress-unit-tests/blob/master/includes/factory.php
tampaknya menjadi tempat terbaik untuk melihat saat ini
sumber