PHPUnitを使用して、クラスMailのメソッドでテストを作成しようとしています。私がテストしているメソッドはsaveMessage($ arguments)です。saveMessageは、保存に加えて、クラスメソッドを呼び出すこともできます$this->emailMessage( $arguments )
。saveMessageをテストし、emailMessageが(正しい引数で)正しく呼び出されることをテストするテストを作成したいのですが、実際のemailMessageメソッドを呼び出しません。
私がそれを行うことができる1つの方法は、Mailをサブクラス化し、emailMessageメソッドをオーバーライドすることです。より魅力的な方法は、モックされたオブジェクトでsaveMessageメソッドをテストしながら、Messagesクラスをモックし、emailMessageメソッドをオーバーライドすることです。ただし、モックオブジェクト自体をテストします。それは悪い考えだと読みましたが、この場合、理由は完全にはわかりません。この目的でモックオブジェクトを使用しても安全ですか?これを処理するためのより良い方法はありますか?