web-dev-qa-db-ja.com

Wordpressでテスト可能なクラスを書く方法

テスト可能にするために作成したWordpressプラグインに現在いくつかの修正を加えています。問題は、どのメソッドをテスト用に書くべきかがわからないことです。これらの関数とグローバル変数のいくつかを使うメソッドがあります。

is_singular()
$_GET
$_POST
$_SESSION

is_singularis_pageis_homeおよびその他の関数はコンテキストによって異なります。テストでこれらのコンテキストを偽造する方法がわかりません。

代わりにそれらをメソッドに引数として渡してみましたが、追加の引数を受け付けないフックがあるため、実際には渡すことができません。

テストクラスからそれらを供給するだけで大​​丈夫ですか?私はそれらを使わないような方法でプラグインを修正することが本当に困難です。

何か案は?

更新

私はユニットテストに wordpress-tests とPHP Unitを使用しています。私は始める前に単体テストについていくつかの研究をしました、そして単体テストのグローバル変数を避けるべきである習慣があります。

6
Wern Ancheta

WordPressは、単体テストの拡張機能に関する標準的な慣例にはほど遠いです。または一般的な拡張構造用です。

現時点では、次のいずれかを行ってください。

  • 一般的にPHPコードについて、あなたが選んだユニットテストフレームワークがどのようにグローバルを扱うことを推奨するかを調べてください。
  • WP_Mock のように現れ始めるユニットテストのためのWordPress特有のツールを調べてください。
4
Rarst