Answers:
据我所知,目前尚无文档。该官方消息是在这里。
我还编写了有关单元测试WordPress插件的教程,其中提供了有关此功能的一些详细信息。
使用
WP_UnitTestCase
它的优点之一是工厂。这些可以通过factory
成员变量访问。的factory
是与处于定义的类中的一个的每一个实例属性的对象包括/ factory.php。你问他们做什么?它们使您可以在测试中的任何地方轻松创建用户,帖子,术语等。因此,不要这样做:$args = array( /* A bunch of user data you had to make up */ ); wp_insert_user( $args );
您可以这样做:
$user_id = $this->factory->user->create();
但是,等等,它变得更好。如果您需要许多用户(或帖子,等等)怎么办?您可以像这样批量创建它们:
$user_ids = $this->factory->user->create_many( 25 );
这将创建25个可以在测试中使用的用户。
将
factory
具有以下属性,您可以使用:
$post
$attachment
$comment
$user
$term
$category
$tag
$blog
它们都可以与上述示例在
$user
工厂中使用的相同方式使用。例如,您可以创建这样的帖子:
$this->factory->post->create();
您还可以指定用于创建对象的特定参数。在上面的示例中,我们创建了一个帖子,但没有将其分配给特定用户(该
post_author
字段默认为0
)。有时我们可能希望将帖子分配给用户。我们会这样:$user_id = $this->factory->user->create(); $post_id = $this->factory->post->create( array( 'post_author' => $user_id ) );
另外,如果您需要的不仅仅是创建的对象的ID,则不需要这样做:
$post_id = $this->factory->post->create(); $post = get_post( $post_id );
而是使用
create_and_get()
方法:// $post will be an instance of WP_Post $post = $this->factory->post->create_and_get();
在此示例中,我们使用了
post
工厂,但是所有工厂都是如此。
我想我会向WordPress文档团队提及这一点。也许我们可以将这些东西放入插件和主题手册中。
更新(2015年6月20日):您还可以创建自己的定制工厂!
更新(2016年9月27日):在WordPress 4.4中,对测试进行了更新,以提供factory()
用于访问工厂的静态方法,尽管该factory
属性仍是通过魔术吸气剂提供的。