我正在尝试使用 PHPUnit 对 Mail 类的方法编写测试。我正在测试的方法是 saveMessage($arguments)。saveMessage,除了保存,还可以调用类方法,$this->emailMessage( $arguments )
. 我想编写一个测试 saveMessage 的测试,并测试 emailMessage 是否被正确调用(使用正确的参数),但不调用实际的 emailMessage 方法。
我可以做到的一种方法是将 Mail 子类化,并覆盖 emailMessage 方法。一种更吸引人的方法是模拟 Messages 类,并覆盖 emailMessage 方法,同时在模拟对象中测试 saveMessage 方法。但是,然后我将测试 Mocked 对象本身;我读过这是一个坏主意,但在这种情况下,我不完全确定为什么。为此目的使用模拟对象是否安全?有没有更好的方法来处理这个?