PHPUnitはxUnitから派生しているので、それはどのようにxUnitを実行するのですか。
なぜxUnitはそうしていますか?私はあなたに尋ねられてうれしいです。ロバートが指摘した元の理由は、xUnitはSmalltalkから来ており、JavaのJUnitによって広く普及したということです。どちらもOO-or-nothing言語なので選択肢はありません。
これは他の利点がないと言うわけではありません。 OOテストは継承できます。つまり、サブクラスをテストする場合は、すべての親テストを実行して、変更したビヘイビアのテストメソッドの一部をオーバーライドできます。これにより、テストコードを複製することなく、優れたサブクラスのカバレッジが得られます。
PHPUnitで簡単にアサーションメソッドを追加したりオーバーライドしたりできます。サブクラスPHPUnit_Framework_TestCase
をサブクラス化し、独自のassert
メソッドを記述し、テストクラスに新しいサブクラスを継承させます。また、デフォルトのsetup
とteardown
メソッドを記述することもできます。
最後に、テストフレームワークのメソッドがテストしているものと衝突しないことを保証します。テストフレームワークがその機能をテストにダンプしただけで、setup
メソッドを持っていたものをテストしたいのであれば、うまくいきません。
私はあなたの痛みを聞いています。大きなテストフレームワークは、面倒で面倒で脆いことがあります。 PerlはxUnitスタイルを使用せず、短いテスト関数名を持つ手続き型スタイルを使用します。例については、Test::Moreを参照してください。あなたが示唆したことだけで、すべての関数が使用するシングルトンテストインスタンスオブジェクトがあります。また、OOテストメソッドモジュールであるTest::Classと呼ばれるハイブリッド手続き型アサート関数もあり、両方の世界でベストを尽くしています。PHPの構文が呼び出すメソッド
私はあなたが->
を好きではないと思うのためのあまりの醜さであることを考慮
。私はあなたがそれで生きることを学ぶことを提案する。 OO PHPは、これに比べてずっと良いです。
あなたはグローバルの使用を提唱していますか? – Robert
はい、私は、しかし、厳密な文脈であると思います。さて、あなたは私に汚れを感じさせました。 –
あなたはあなたが今与えられている答えを見直し、最も有用なものを受け入れるか、あなたの質問を解決して答えがあなたのために解決しない理由を書き留めてください。ありがとう。 – Gordon