web-dev-qa-db-ja.com

プラグイン開発のための単体テスト

私のプラグインの一つにユニットテストを適用する必要があります。私は最近それをクラスに再設計しました、それでユニットテストは今適用するのがより簡単であるべきです。

私のプラグインをユニットテストするためのいくつかの効果的な戦略は何ですか?プラグインで使用されているWordPressの機能を使用する方法は必要ですが、実行中のWordPressサイトは必要ありません(単にDB AFAIKでデータをテストする)必要はありません。

サイトのコンテキストでプラグインではなく単なるプラグインの単体テストを行う方法を考え出すのに苦労しています。これにはSeleniumを使用できますが、今はプラグインクラスの機能を単体テストすることに集中したいので、更新のたびにそれらを壊さないようにします。

16
Fernando Briano

インタラクティブな代理店に上陸した大規模なビジネスを構築する元ソフトウェアエンジニアとして、Wordpress用に開発する際のテストについていくつか考えさせてください。

  1. 単体テストでは、クラスが実行できる最小の動作をテストする必要があります。各クラスはWordpressとは無関係にテストできるべきです。 Wordpressの依存関係がある場合は、これを回避するためにテストでモックオブジェクトやメソッドを作成することを検討してください。最終的に、これはあなたがあなたのコードを書く方法を少し変えるでしょう - しかし、それははるかにテスト可能になるでしょう。いつものように無料の昼食はありません。

  2. 機能テストのレベルに到達したら、ここでWordpressの依存関係を使用してコードをテストできます。ここで、プラグインが実際に想定しているサービスを実行していることを実際にテストします。

  3. プラグインの動作に応じて、IDを使用してDOM内のデータの存在をテストするSeleniumベースのテストの使用を検討してください。その適度に堅牢で、バージョンをバージョンごとに分割する可能性ははるかに低いです。繰り返しますが、ここでのトリックは、テストをソフトウェア開発ライフサイクルの一部として考えることです。コードの大幅な変更は、テストの大幅な変更にカスケードされます。ビジネスを行うためのコストのすべての部分。

あなたがこれを達成するためのツールのいずれかで何か支援が必要な場合 - 私はあなたが新しい質問を開いたなら答えてうれしいです。私は私の仕事でPHPUnitとそのSelenium拡張の両方を利用しています。

14
Ethan Seifert

私は実際にそれを自分でやったことはありませんが、WordPress単体テストのためのテスト環境があります。これはコアテストのためのものですが、テストプラグインに適応させることもできます。

詳細はこちら:

http://codex.wordpress.org/Automated_Testing

http://svn.automattic.com/wordpress-tests/ /

8
Otto