Risposte:
Per quanto ne so, al momento non è disponibile alcuna documentazione. La fonte ufficiale è qui .
Ho anche scritto un tutorial sui plugin WordPress per test unitari, che fornisce alcuni dettagli su questa funzione .
Uno dei vantaggi dell'utilizzo
WP_UnitTestCase
sono le sue fabbriche. È possibile accedervi tramite lafactory
variabile membro. Ilfactory
è un oggetto con proprietà che sono ciascuna un esempio di una delle classi definite in include / factory.php . Cosa fanno, chiedi? Rendono molto semplice la creazione di utenti, post, termini, ecc., Ovunque sia necessario nel test. Quindi, invece di fare questo:$args = array( /* A bunch of user data you had to make up */ ); wp_insert_user( $args );
Puoi fare solo questo:
$user_id = $this->factory->user->create();
Ma aspetta, diventa ancora meglio. Cosa succede se hai bisogno di molti utenti (o post o altro)? Puoi semplicemente crearli in blocco in questo modo:
$user_ids = $this->factory->user->create_many( 25 );
Ciò creerà 25 utenti che è possibile utilizzare nel test.
L'
factory
ha le seguenti proprietà che è possibile utilizzare:
$post
$attachment
$comment
$user
$term
$category
$tag
$blog
Possono essere usati tutti nello stesso modo come dimostrato nell'esempio sopra con la
$user
fabbrica. Ad esempio, puoi creare un post come questo:
$this->factory->post->create();
È inoltre possibile specificare argomenti specifici da utilizzare per la creazione dell'oggetto. Nell'esempio sopra abbiamo creato un post, ma non è stato assegnato a un determinato utente (il
post_author
campo sarà impostato per impostazione predefinita0
). A volte potremmo invece voler assegnare il post a un utente. Lo faremmo così:$user_id = $this->factory->user->create(); $post_id = $this->factory->post->create( array( 'post_author' => $user_id ) );
Inoltre, se hai bisogno di qualcosa di più del semplice ID dell'oggetto che stai creando, non devi farlo:
$post_id = $this->factory->post->create(); $post = get_post( $post_id );
Utilizzare invece il
create_and_get()
metodo:// $post will be an instance of WP_Post $post = $this->factory->post->create_and_get();
In questo esempio, abbiamo usato la
post
fabbrica, ma lo stesso vale per tutte le fabbriche.
Penso che parlerò di questo al team di docenti di WordPress. Forse possiamo ottenere questo materiale nei manuali dei plugin e dei temi.
Aggiornamento (20 giugno 2015): puoi anche creare le tue fabbriche personalizzate !
Aggiornamento (27 settembre 2016): in WordPress 4.4 i test sono stati aggiornati per fornire un factory()
metodo statico per accedere alle fabbriche, sebbene la factory
proprietà sia ancora fornita tramite un getter magico.
Il codice sorgente a
https://github.com/rnagle/wordpress-unit-tests/blob/master/includes/factory.php
sembra essere il posto migliore per guardare il momento