Odpowiedzi:
O ile mi wiadomo, obecnie nie ma na to dokumentacji. Oficjalnym źródłem jest tutaj .
Napisałem również samouczek na temat testowania jednostkowego wtyczek WordPress, który zawiera szczegółowe informacje na temat tej funkcji .
Jedną z zalet korzystania z niego
WP_UnitTestCasesą jego fabryki. Można do nich uzyskać dostęp poprzezfactoryzmienną członka.factoryPrzedmiotem o właściwościach, które każdorazowo oznaczają przypadek jednej z klas określonej w obejmuje / factory.php . Co oni robią, pytasz? Ułatwiają tworzenie użytkowników, postów, warunków itp., Gdziekolwiek ich potrzebujesz w teście. Zamiast tego:$args = array( /* A bunch of user data you had to make up */ ); wp_insert_user( $args );Możesz po prostu to zrobić:
$user_id = $this->factory->user->create();Ale czekaj, robi się jeszcze lepiej. Co zrobić, jeśli potrzebujesz wielu użytkowników (lub postów itp.)? Możesz po prostu utworzyć je zbiorczo w następujący sposób:
$user_ids = $this->factory->user->create_many( 25 );Spowoduje to utworzenie 25 użytkowników, których możesz użyć w teście.
factoryMa następujące właściwości, które można użyć:
$post$attachment$comment$user$term$category$tag$blogWszystkie mogą być używane w taki sam sposób, jak pokazano w powyższym przykładzie z
$userfabryką. Na przykład możesz utworzyć taki post:
$this->factory->post->create();Możesz także określić konkretne argumenty, które będą używane do tworzenia obiektu. W powyższym przykładzie utworzyliśmy post, ale nie został on przypisany do konkretnego użytkownika (
post_authorpole będzie domyślnie ustawione na0). Czasami zamiast tego możemy chcieć przypisać post do użytkownika. Zrobilibyśmy to w ten sposób:$user_id = $this->factory->user->create(); $post_id = $this->factory->post->create( array( 'post_author' => $user_id ) );Ponadto, jeśli potrzebujesz czegoś więcej niż tylko identyfikator tworzonego obiektu, nie musisz tego robić:
$post_id = $this->factory->post->create(); $post = get_post( $post_id );Zamiast tego użyj
create_and_get()metody:// $post will be an instance of WP_Post $post = $this->factory->post->create_and_get();W tym przykładzie wykorzystaliśmy
postfabrykę, ale to samo dotyczy wszystkich fabryk.
Myślę, że wspomnę o tym zespołowi dokumentów WordPress. Może uda nam się wprowadzić te rzeczy do wtyczek i podręczników tematycznych.
Aktualizacja (20 czerwca 2015 r.): Możesz także tworzyć własne niestandardowe fabryki !
Aktualizacja (27 września 2016 r.): W WordPress 4.4 testy zostały zaktualizowane, aby zapewnić statyczną factory()metodę dostępu do fabryk, chociaż factorywłaściwość jest nadal udostępniana za pośrednictwem magicznego narzędzia pobierającego.
Kod źródłowy w
https://github.com/rnagle/wordpress-unit-tests/blob/master/includes/factory.php
wydaje się być najlepszym miejscem do obejrzenia w tej chwili