33

私はSOとGoogleを見回してきましたが、決定的な答えを得ることができませんでした.

PHPUnit は、JUnit と同様に単体テスト用のフレームワークです。機能テスト用の Selenium 拡張機能と組み合わせて使用​​します。ブラウジングしていると、Behat/Mink が言及され続けていることがわかります。しかし、Behat がここにどのように収まるかは完全にはわかりません。

Behat を使用すると、人間が読める形式でシナリオを記述できます。Behat はそれを新しいプロジェクトのスケルトン クラスに変換できますか? しかし、単体テスト用のスケルトン クラスも提供していますか? Behat を使用して単体テストを作成しますか、それとも PHPUnit / SimpleTest を使用しますか?

しかし、Behat/Mink は機能テストのために PHPUnit_Selenium-extension を置き換えますか?

Behat は新しいプロジェクトにのみ使用しますか?それとも既存のプロジェクトにも適用できますか?

4

3 に答える 3

15

はい、Behat は、一般的なコード テストとブラウザー オートメーションを使用した機能テストの両方で、phpUnit の代わりになると考えています。

一般的なテストでは、phpUnit はより確立された製品ですが、Behat は「BDD」手法 (動作駆動設計) を使用して記述されたテストに焦点を当てています。phpUnit にも BDD 機能がありますが、Behat はそのスタイルをよりターゲットにしています。

単体テストではなく機能的なブラウザー テストについて話しているので、ブラウザーが持つより強力な単体テスト機能のいくつかについて考えていない可能性があります。ブラウザの自動化を書きたいだけです。このため、実際に 2 つの中から最も適した方を選択できます。

それぞれが他よりも優れている微妙なエッジ ケースがありますが、ほとんどの場合、両方ともさまざまなブラウザーでテスト スクリプトを実行できます。

Behat/Mink の方が柔軟性が高いという理由で、私は Behat/Mink を好みます。Selenium や Sahi など、いくつかのブラウザー自動化エンジンをサポートできます。つまり、一方に問題が発生した場合、テストを他方に切り替えて続行できます。Mink テスト スクリプトを Selenium で動作させようとして、まさにこの状況が発生しました。Sahi に切り替えると機能し、テスト コードを 1 行だけ変更するだけで済みました。

また、BDD スタイルのテストを作成したくない場合は、Mink を Behat なしで単独で使用できることも付け加えておく価値があります。

于 2013-02-12T11:20:51.243 に答える