私はPHPテストが初めてで、TDDで簡単なプロジェクトを構築しようとしています。
シンプルなアイデアは、ある種のシンプルなカード/デッキ セットアップを作成することでした。
私はテストを書き始め、すぐに失敗したテストからCardDeckクラスとCardStackクラスをマッシュアップし始めました。どちらも getTop()、getTopStack().. などの同じメソッドをいくつか実装していたので、抽象クラスBaseCardStackであるCardDeckInterfaceを実装することにしました。
リファクタリング後。CardDeck と CardStack は、CardStackInterface を実装する BaseCardStack を拡張します。
CardDeck と CardStack の唯一の違いは、CardStack の構造といくつかの追加機能です。それ以外の場合、BaseCardStack から実装された関数は上書きされません。
これが私の悩みの種です。私のCardDeckTestでは、実装されたメソッドに関連付けられたテストがあり、BaseCardDeckを移動しました。
現在のテストを CardDeckTest に保持し (以前と同じようにパスします)、CardStackTest 用に追加のテスト セットを作成する必要がありますか? メソッドは既にテストされており、まったく違いがない (上書きされていない) ため、これは間違った解決策のように思えます。前述のように、BaseCardStack から実装されたメソッドは上書きされません。
代わりに、抽象クラスのテストを移動/作成する必要があると思います。
基本的に、上書きされることなく実装されることがわかっている抽象クラスの関数をテストしたいと考えています。
しかし、どうすればこれを行うことができますか?私は嘲笑すべきですか?パターンを変更する必要がありますか?