Использование
- PHPUnit (6.5.8)
- издевательство (1.1.0)
- Phalcon (7,2)
- Phalcon / инкубатор (3.4.0)
Чего я хочу достичь
Я хочу создать модульный тест для отправки почты.
Кажется, это простой тест, но я не смог этого сделать.
Теперь, когда я запускаю тест, возвращается false.
Но я ожидаю, что правда вернулась.
Я ошибаюсь?
Метод, который я хочу проверить
Это методы для проверки
namespace \App\Controllers;
class TestController extends \Base\Controller
private function _sendConfirmationMail()
{
$to = "to";
$from = 'test@example.com';
$subjectText = 'subjectText';
$subject = "subject";
$headers = "Content-Type: text/html; charset=UTF-8" . "\r\n"
. "From: Company <{$from}>" . "\r\n"
. "Bcc: test@example.com";
$body = 'body ... ... ... ';
if (mb_send_mail($to, $subjectText, $body, $headers, "-f {$from}")) {
return true;
}
return false;
}
Юнит тест
Это юнит тест
(Я ожидал, что истина вернулась, но ложь вернулась)
public function testsMailTransmissionSucceeds()
{
$mockTestController = $this->getMockBuilder(\App\Controllers\TestController::class)
->setMethods(array("_sendConfirmationMail"))
->getMock();
// use reflection class because of private method
$reflection = new \ReflectionClass($mockTestController);
$method = $reflection->getMethod('_sendConfirmationMail');
$method->setAccessible(true);
$this->assertTrue($method->invokeArgs($mockTestController, "_sendConfirmationMail", array($clientData, $siteData, $params));
}