Я новичок в тестировании приложений и в Symfony2, поэтому у меня есть один вопрос. Для exaple у меня есть несколько сеансов, одна отправляет письма ($this->mailer->send($message)
), а вторая делает некоторые вещи с экземпляром сущности, а затем возвращает экземпляр, который появился для сохранения, поэтому в первом случае мне нужно проверить только assertTrue()
(с пометкой или нет)? Но что нужно проверить на втором? Может кто-нибудь мне помочь?
На самом деле, это довольно широкий вопрос. Одним из примеров того, что я обычно делаю при тестировании служб, которые могут быть изменены, могут быть следующие:
Service Adder
обновляет состояние объекта: на основе другого объекта добавляет значение сущности и устанавливает правильные значения до их сохранения.
// src/Acme/DemoBundle/Tests/Service/AdderTest.php
namespace Acme\DemoBundle\Tests\Service;
use Acme\DemoBundle\Service\Adder;
use Acme\DemoBundle\Entity\One;
use Acme\DemoBundle\Entity\Two;
class AdderTest extends \PHPUnit_Framework_TestCase
{
public function testAdd()
{
$add = new Adder();
$ent1 = new One();
$ent2 = new Two();
$ent2->setValue(1);
$add->setOne($ent1);
$add->setTwo($ent2);
$add->updateEntity();// $ent1->setValue($ent2->getValue()+1);
$this->assertEquals(2, $ent1->getValue());// Expected state of $ent1
}
}
Конечно, он обычно становится более сложным, но по крайней мере он может дать вам представление о том, как начать (используйте службу для обновления состояния объекта и проверьте, что новое состояние объекта является ожидаемым).
Надеюсь, поможет.