回答:
私の知る限り、現時点ではドキュメントはありません。公式のソースはこちらです。
また、WordPressプラグインの単体テストに関するチュートリアルも作成しました。このチュートリアルでは、この機能について詳しく説明しています。
使用する利点の1つは、
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
プロパティはまだマジックゲッターを介して提供されます。
のソースコード
https://github.com/rnagle/wordpress-unit-tests/blob/master/includes/factory.php
現時点で見るのに最適な場所のようです