質問

コンストラクタに私のクラスに追加アクションの'init'アクションのフック:

class My_Custom_Post_Type {

    function __construct( $type ) {
        $this->type = $type;
        add_action( 'init', array( $this, 'register_my_type' );
    }

    function register_my_type() {
        register_post_type( $this->type);
    } 
}    

俺がこの単位で試験したいのないことの理由'init'アクションのフック。必要があります。試験のregister_my_type法が注目されているということになる新しいタイプはあいています。

編集:

の私の混乱からないの関係を理解するアサは、WordPress用のテストスイートを、クラスのコードは、試験のコードです。

今の理解では、WordPress開発ツールの設置されたのはこれ このチュートリアル を通じて WP-CLIを起動します。, 呼び出すと、 phpunit を読み込むブートストラップファイルをフックのプラグインの muplugins_loaded 行動フック。ブートストラップファイルその負荷のWordPressの試験環境です。後WordPressは、ロードを完了したの init フックが実行されます。プラグインのコードを利用した init として期待される。

試験は主にだけ通常のコードで利用可能な機能。何が違うのはその記述方法としてのクラスを拡張 WP_UnitTestCase 広がる PHPUnit_Framework_TestCase.さに包まれたこのクラスの試験へのアクセスの主張およびオブジェクトの工場を稼動させている setUptearDown 方法それぞれの試験には依存します。

役に立ちましたか?

解決

というように init 行動 ときに呼び出されWordPressがロードされる前の試験です。いましょうプラグイン/テーマを搭載WordPress(引っ掛け入 muplugins_loaded, 例えば、 register_my_type() メソッドは用することで知られているという場合にはコンストラクタが呼び出される前に呼び出され init.(でない場合負荷プそのようにみてください このチュートリアル.)

なおユニット試験に対応することができるでしょうめいこ

$this->assertTrue( post_type_exists( 'my_post_type' ) );

このまま使用 get_post_type() チェックの投稿タイプに登録した正しい論争することができます。(これはトラムを乗り継いで行けるようたいのですが、チェックマshortcodesが登録されています。)

のか心配しようと試験のメソッドが呼び出されたとは確認できれば、リストの行動 $wp_actions それに虜になった川を一望できます。このままセットaクラス物件として、フラグの場合と呼ばれるものの、って思っているのを失わせないアイテムです。でもハマるようになったとも言 init, 特に機能このようなみの走行には、一度機能試験を実施スケジュールでベット。ることを確認でっかいないといけないと考えていに焦点を当てるよりも、むしろう試験は単一のユニットのようなるかどうかの方法が行われようとしていました。

とはいえ、このまま試験の方法レジスタの種類によりderegisteringのタイプ、手動で呼び出しの方法です。WordPressが表示されていないの提供 deregister_post_type() 機能のない混乱の $wp_post_types グローバル。き削除後のタイプから呼び出方法および確認の場合は登録されました。

ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top