Ecco un esempio di un set di test che include i risultati del database. Se è necessario interagire direttamente con il database nel test, il gestore di entità può essere reso disponibile per il test. Per ulteriori informazioni, vedere this bit of documentation. Si noti che i risultati vengono solitamente presentati in una pagina Web e letti dal crawler DOM.
public function setUp()
{
self::bootKernel();
$this->em = static::$kernel->getContainer()
->get('doctrine')
->getManager()
;
$this->tool = static::$kernel->getContainer()
->get('truckee.toolbox')
;
$classes = array(
'Truckee\VolunteerBundle\DataFixtures\SampleData\LoadFocusSkillData',
'Truckee\VolunteerBundle\DataFixtures\SampleData\LoadMinimumData',
'Truckee\VolunteerBundle\DataFixtures\SampleData\LoadStaffUserGlenshire',
'Truckee\VolunteerBundle\DataFixtures\SampleData\LoadStaffUserMelanzane',
'Truckee\VolunteerBundle\DataFixtures\SampleData\LoadOpportunity',
'Truckee\VolunteerBundle\DataFixtures\SampleData\LoadVolunteer',
);
$this->loadFixtures($classes);
$this->client = $this->createClient();
$this->client->followRedirects();
}
public function testOutboxUser()
{
$crawler = $this->login('admin');
$link = $crawler->selectLink("Send alerts to organizations")->link();
$crawler = $this->client->click($link);
$outboxObj = $this->em->getRepository('TruckeeVolunteerBundle:AdminOutbox')->findAll();
$outbox = $outboxObj[0];
$recipient = $outbox->getRecipientId();
$type = $this->tool->getTypeFromId($recipient);
$this->assertEquals('staff', $type);
}
correlati: http://stackoverflow.com/questions/10784973/how-to-set-up-database-heavy-unit-tests-in-symfony2-using-phpunit – k0pernikus
ho visto questa domanda, ma sfortunatamente si tratta di creare l'apparecchio e non confermare i risultati dopo un test funzionale, a meno che non manchi qualche aspetto della risposta. – Nairebis
Non si tratta solo di creare proiettori. Questo è solo il tuo punto di partenza. Per un test funzionale sul lato DB, è necessario creare un DB al volo, eseguire i test e quindi distruggere il DB di test. All'interno del test funzionale puoi anche interrogare il tuo DB e verificare i valori. Poiché non penso che dovresti testare il contenuto acutico del DB, ma se il tuo repository restituisce i dati corretti dopo che alcuni servizi hanno scritto nel DB. Ricordare che il processo di installazione e smontaggio deve essere eseguito per ogni caso di test e che il test di funzionamento può richiedere molto tempo. – k0pernikus