keltanas
marty cats
Снова приветствую!
Есть необходимость написать функциональный тест на контроллер, который обновляет некую сущность и сохраняет ее в БД. Например так:
Ясно, что мы можем проверить ответ, который возвращает контроллер. Но, как протестировать, что он записал в БД?
1. Может стоит вернуть из контроллера в виде json все сохраненные данные и проверять их? Но, нет гарантии, что запись таки произошла?
2. Может надо сделать в тесте запрос из базы и посмотреть, что там находится? Как в таком случае лучше получить объект менеджера доктрины?
И в этом случае тоже не все чисто. Доктрина может вернуть объект из кэша.
3. Еще вопрос. Как можно запускать перед тестами загрузку фикстуры для тестовой БД вместе с --purge-with-truncate?
Есть необходимость написать функциональный тест на контроллер, который обновляет некую сущность и сохраняет ее в БД. Например так:
PHP:
namespace Acme\FooBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class DefaultControllerTest extends WebTestCase
{
public function testUpdate()
{
$client = static::createClient();
$crawler = $client->request('PUT', '/foo/1', arrar('name'=>'Vasya'));
$this->assertTrue($crawler->filter('html:contains("All fine!")')->count() > 0);
}
}
1. Может стоит вернуть из контроллера в виде json все сохраненные данные и проверять их? Но, нет гарантии, что запись таки произошла?
2. Может надо сделать в тесте запрос из базы и посмотреть, что там находится? Как в таком случае лучше получить объект менеджера доктрины?
И в этом случае тоже не все чисто. Доктрина может вернуть объект из кэша.
3. Еще вопрос. Как можно запускать перед тестами загрузку фикстуры для тестовой БД вместе с --purge-with-truncate?