Tôi đang cố gắng để kiểm tra email trong thử nghiệm chức năng ...Làm thế nào để kiểm tra email trong thử nghiệm chức năng (Symfony2)
mã nguồn của tôi là giống như example of the cookbook,
bộ điều khiển:
public function sendEmailAction($name)
{
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
->setFrom('[email protected]')
->setTo('[email protected]')
->setBody('You should see me from the profiler!')
;
$this->get('mailer')->send($message);
return $this->render(...);
}
Và kiểm tra:
// src/Acme/DemoBundle/Tests/Controller/MailControllerTest.php
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class MailControllerTest extends WebTestCase
{
public function testMailIsSentAndContentIsOk()
{
$client = static::createClient();
// Enable the profiler for the next request (it does nothing if the profiler is not available)
$client->enableProfiler();
$crawler = $client->request('POST', '/path/to/above/action');
$mailCollector = $client->getProfile()->getCollector('swiftmailer');
// Check that an e-mail was sent
$this->assertEquals(1, $mailCollector->getMessageCount());
$collectedMessages = $mailCollector->getMessages();
$message = $collectedMessages[0];
// Asserting e-mail data
$this->assertInstanceOf('Swift_Message', $message);
$this->assertEquals('Hello Email', $message->getSubject());
$this->assertEquals('[email protected]', key($message->getFrom()));
$this->assertEquals('[email protected]', key($message->getTo()));
$this->assertEquals(
'You should see me from the profiler!',
$message->getBody()
);
}
}
tuy nhiên tôi đã nhận lỗi này:
PHP Fatal error: Call to a member function getCollector() on a non-object
vấn đề này xuất phát từ dòng này:
bất kỳ ý tưởng?
là câu trả lời của tôi hữu ích không? nếu có xin vui lòng upvote/chấp nhận nếu không xin vui lòng bình luận nếu một cái gì đó bị thiếu hoặc không làm việc :-) – nifr
Tôi không thể kiểm tra trong khi ... nhưng đừng lo lắng, tôi giữ giải pháp của bạn và sẽ thử nó ra vào tuần tới;) – Ousmane