mercredi 1 juin 2016

Symfony 3 FormTypeTest

Following the Symfony 3.0 manual on testing Form Types, I followed the example for testing forms with dependencies as follows;

<?php
namespace Tests\AppBundle\Form;

use AppBundle\Form\Type\Database\OfficeAssignType;
use Symfony\Component\Form\PreloadedExtension;
use Symfony\Component\Form\Test\TypeTestCase;

class OfficeTypeTest extends TypeTestCase
{
    private $entityManager;

    protected function setUp()
    {
    // mock any dependencies
    $this->entityManager = $this->getMock('Doctrine\Common\Persistence\ObjectManager');

    parent::setUp();
}

protected function getExtensions()
{
    // create a type instance with the mocked dependencies
    $office = new OfficeType($this->entityManager);

    return array(
        // register the type instances with the PreloadedExtension
        new PreloadedExtension(array($office), array()),
    );
}

public function testSubmitValid()
{
    $formData = array(
        'name' => 'new test office',
        'address1' => 'Test new office address',
        'city'      => 'Test office city',
        'phone'    => 'testoffice@telummedia.com',
        'country'  => '235',
        'currrency'  => '1',
    );

    // Instead of creating a new instance, the one created in
    // getExtensions() will be used
    $form = $this->factory->create(OfficeType::class);
    // submit data to form
    //$form->submit($formData);

    //$this->assertTrue($form->isSynchronized());
}

}

When I run the tests, I get the following error, Argument 1 passed to Symfony\Bridge\Doctrine\Form\Type\DoctrineType::__construct() must be an instance of Doctrine\Common\Persistence\ManagerRegistry, none given, called in /www/http://ift.tt/1UgNvZC on line 85 and defined

I am not sure what this means to be honest and will appreciate help from anyone who has done FormType unit tests in Symfony 2.8/3.0. Thank you.

Aucun commentaire:

Enregistrer un commentaire