私は現在、Symfony2 の Bitcoin Payment Bundle に取り組んでいます。私の githubで見ることができます。完全にテスト駆動で開発されたわけではありませんが (まだ期待しています)、可能な限りテストでカバーされるようにしています。
Bundle には、インターフェイスAbstractCommand
を実装するクラスが含まれていCommandInterface
ます。抽象クラスであるため、すべてのインターフェースのメソッドを実装する必要はありません。偉大な。
次に、AbstractCommandTest
テストケースがあります。validateParameters
メソッドがうまく機能することをテストします。テストはクラスのすべての行をカバーします。しかし... IDE(PHPプラグインを使用したIntelliJ Idea)でテストカバレッジ分析を実行すると、カバレッジが魔法の93%であることが示されます。赤い色でマークされた行がないため、これは二重に奇妙です(デフォルトの配色を変更したので、よくわかります;))。
質問は:なぜですか?PHPUnitのバグですか?それとも、クラスモデルの構築の問題ですか?AbstractCommand 内に抽象メソッドがある場合 (およびインターフェイスがない場合)、それらもカバーされませんでした。