답변:
내가 아는 한 현재로서는 이에 대한 문서가 없습니다. 공식 소스는 여기에있다 .
또한 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
팩토리를 사용 했지만 모든 팩토리에 대해서도 동일합니다.
나는 이것을 워드 프레스 문서 팀에 언급 할 것이라고 생각한다. 이 자료를 플러그인과 테마 핸드북에 넣을 수도 있습니다.
업데이트 (2015 년 6 월 20 일) : 사용자 정의 팩토리를 만들 수도 있습니다 !
업데이트 (2016 년 9 월 27 일) : WordPress 4.4에서는 속성이 여전히 매직 게터를 통해 제공 되지만 공장에 액세스 하기위한 정적 factory()
방법 을 제공하도록 테스트가 업데이트되었습니다factory
.
의 소스 코드
https://github.com/rnagle/wordpress-unit-tests/blob/master/includes/factory.php
지금 가장보기 좋은 곳인 것 같습니다