Onde posso encontrar documentação para as classes de fábrica WP_UnitTestCase?

21

Nas versões recentes, WP_UnitTestCase incluiu uma propriedade $factory .

Por exemplo:

$post = $this->factory->post->create();

Onde posso encontrar documentação sobre esse recurso útil?

    
por djb 25.03.2014 / 12:13
fonte

2 respostas

26

Até onde eu sei, não há documentação para isso no momento. A fonte oficial está aqui .

Eu também escrevi um tutorial sobre os plugins WordPress de teste unitário, que dá alguns detalhes sobre isso recurso .

  

Uma das vantagens de usar WP_UnitTestCase são suas fábricas.   Estes podem ser acessados através da variável factory member. o    factory é um objeto com propriedades que são, cada uma, uma instância de   Uma das classes definidas em inclui / factory.php .   O que eles fazem, você pergunta? Eles tornam muito simples criar usuários,   posts, termos, etc., onde quer que você precise deles em seu teste. Então, ao invés disso   de fazer isso:

$args = array( /* A bunch of user data you had to make up */ );
wp_insert_user( $args );
     

Você pode fazer isso:

     

$user_id = $this->factory->user->create();

     

Mas espere, fica ainda melhor. E se você precisar de muitos usuários   (ou posts, ou qualquer outro)? Você pode simplesmente criá-los em massa assim:

     

$user_ids = $this->factory->user->create_many( 25 );

     

Isso criará 25 usuários que você pode usar no seu teste.

     

O factory tem as seguintes propriedades que você pode usar:

     
  • $post
  •   
  • $attachment
  •   
  • $comment
  •   
  • $user
  •   
  • $term
  •   
  • $category
  •   
  • $tag
  •   
  • $blog
  •   

Todos eles podem ser usados da mesma maneira, conforme demonstrado acima   exemplo com a $user factory. Por exemplo, você pode criar uma postagem   assim:

     

$this->factory->post->create();

     

Você também pode especificar argumentos específicos para usar na criação do   objeto. No exemplo acima, criamos uma postagem, mas ela não foi atribuída   para um usuário em particular (o campo post_author será padronizado para   %código%). Às vezes, podemos querer a postagem atribuída a um usuário.   Nós faríamos isso assim:

$user_id = $this->factory->user->create();
$post_id = $this->factory->post->create( array( 'post_author' => $user_id ) );
     

Além disso, se você precisar de mais do que apenas o ID do objeto,   criando, você não precisa fazer isso:

$post_id = $this->factory->post->create();
$post = get_post( $post_id );
     

Em vez disso, use o método 0 :

// $post will be an instance of WP_Post 
$post = $this->factory->post->create_and_get();
     

Neste exemplo, usamos a create_and_get() factory, mas o mesmo é verdadeiro   para todas as fábricas.

Acho que vou mencionar isso à equipe de documentos do WordPress. Talvez possamos incluir essas coisas nos manuais de plugins e de temas.

Atualização (20 de junho de 2015): você também pode crie suas próprias fábricas personalizadas !

Atualização (27 de setembro de 2016): No WordPress 4.4 os testes foram atualizado para fornecer um método post estático para acessar as fábricas, embora a propriedade factory() ainda seja fornecida por meio de uma mágica mágica.

    
por J.D. 25.03.2014 / 13:42
fonte
2

O código-fonte em

enlace

parece ser o melhor lugar para olhar o momento

    
por djb 25.03.2014 / 12:29
fonte

Tags