単体テストを作成しているときに、クラスをリファクタリングしています。私のメソッドの1つが、テストしているこのクラスに注入された別のオブジェクトのメソッドを完全に呼び出している場合があります。
だから私はクラスに注入したオブジェクトをモックする必要があります。
さて、問題は、この特定のメソッドの単体テストを作成する価値があるかどうかです。そのオブジェクト自体をモックする必要がある他のオブジェクトのメソッドを呼び出す単体テストを作成するのは奇妙に思えますが、なぜこのメソッドをテストするのですか?
テストの目的は、メソッドの機能が期待どおりに機能するかどうかを確認することではありませんか?もしそうなら、私がそれをすべて嘲笑していて、テストする特定の方法が残っていないとき、なぜ私はテストする必要がありますか?
私は本当に混乱しています!
私が立ち往生している方法はこれです(これはカスタムセッション処理に使用されます):
public function write($sessionId, $sessionData)
{
$sth = $this->databaseConnection->prepare("INSERT INTO `{$this->DBTableName}` (`session_id`,`session_name`,`session_data`) VALUES(:session_id, :session_name, :session_data) ON DUPLICATE KEY UPDATE `session_data`=:session_data;");
$sth->bindValue(':session_id', $sessionId);
$sth->bindValue(':session_name', $this->sessionName);
$sth->bindValue(':session_data', $sessionData);
return $sth->execute();
}
このコードへのリンクもここにあります:http: //pastebin.com/1FBeU6mb
ちなみに、私はクラスのテストを書き始めたばかりで、この分野のテストの初心者であり、経験が浅いです。
前もって感謝します。