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


17

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

プラグインの単体テストに効果的な戦略は何ですか?プラグインで使用されるWordPressの機能を使用する方法が必要ですが、実行中のWordPressサイト(DB AFAIKでデータをテストするだけ)は必要ありませんか?

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

回答:


14

インタラクティブなエージェンシーに上陸した大規模なビジネスタイプを構築する元ソフトウェアエンジニアとして、Wordpress用に開発する際のテストについていくつか考えてみましょう。

  1. ユニットテストでは、クラスが実行できる動作の最小量をテストする必要があります。各クラスは、Wordpressから独立してテストできる必要があります。Wordpressの依存関係がある場合は、テストでモックオブジェクトやメソッドを作成して、これを回避することを検討してください。最終的には、これによりコードの記述方法が少し変わりますが、はるかにテストしやすくなります。いつものように無料のランチはありません。

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

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

これを達成するためのツールのいずれかで支援が必要な場合は、新しい質問を開いていただければ幸いです。私はPHPUnitとそのセレン拡張の両方を自分の仕事で利用しています。


1
やあ、イーサン、このような専門的な答えをありがとう。このコミュニティから期待することはできませんでした:)クラスのユニットテストを作成し、WordPressの機能を回避するためのモックオブジェクトを作成してみます。ステップ2は私にとって実際に難しい部分です。これは、ある種の自動テストのためにWordPressをインストールする必要があり、後でSeleniumを使用できるようになるためです。PHPUnitから始めて、それがどうなるかを見ていきます。ありがとう!
フェルナンドブリアーノ

完璧な答え!
rsman


-1

私は最近、私のグーグルからの情報を取得するチュートリアルを作成しました:

  1. Wordpressコアを使用して単体テストを作成する
  2. 非推奨のPHPを非表示/セッションが警告を送信
  3. テストでプラグインオプションを設定する方法を示す
  4. 同じwpコアメイクユニットテストを使用して複数のプラグインをテストする

チュートリアルはこちらです。お役に立てば幸いです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.