PHPUnit para testes em classes de persistencia com doctrine

24/05/2017

0

PHP

Bom dia, estou com algumas duvidas de como proceder para efetuar testes em classes de persistencia com PHPUnit.

Classe:
<?php

namespace App\\Action;

use Bootstrap;
use App\\Model\\TipoProduto as TipoProduto;

class TipoProdutoAction
{
    public function salvarTipoProduto($param)
    {
        $em = Bootstrap::getEntityManager();
        $item = new TipoProduto;
        if (isset($param["id"])){
            $item = $em->getRepository('App\\Model\\TipoProduto')->find($param['id']);
        }
        $item->setNome($param["nome"]);
        $item->setTipo($param["tipo"]);
        $em->persist($item);
        $em->flush();
        return $item->getId();
    }
}


Classe de testes
<?php

use PHPUnit_Framework_TestCase as PHPUnit;
use \\App\\Action\\TipoProdutoAction as ActionTipoProduto;

spl_autoload_register(function($className)
{
    require(str_replace("\\\\", "/", __DIR__ . '/' . $className . '.php'));
});

class TipoProdutoTest extends PHPUnit
{
    protected $tipo;

    public function setUp()
    {
        $this->tipo = new ActionTipoProduto;
    }

    public function testExisteMetodo()
    {
        $this->assertTrue( method_exists( new ActionTipoProduto, 'salvarTipoProduto' ), 'Method not found: salvarTipoProduto()' );
    }

    public function testConsegueInserir()
    {
        $param = array('id' => 1, 'nome' => 'pizza', 'tipo' => '1');
        $this->tipo->salvarTipoProduto($param);
    }

    public function tearDown()
    {

    }
}


Erro gerado

PHPUnit 3.7.21 by Sebastian Bergmann.

.PHP Warning:  Uncaught PHPUnit_Framework_Error_Warning: require(C:/xampp/htdocs/app/api/src/Doctrine/ORM/Configuration.php): failed to open stream: No such file or directory in C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php:9
Stack trace:
#0 C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php(9): PHPUnit_Util_ErrorHandler::handleError(2, 'require(C:/xamp...', 'C:\\\\xampp\\\\htdocs...', 9, Array)
#1 C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php(9): require()
#2 [internal function]: PHPUnit_Util_Fileloader::('Doctrine\\\\ORM\\\\Co...')
#3 C:\\xampp\\htdocs\\app\\api\\src\\Bootstrap.php(37): spl_autoload_call('Doctrine\\\\ORM\\\\Co...')
#4 C:\\xampp\\htdocs\\app\\api\\src\\App\\Action\\TipoProdutoAction.php(12): Bootstrap::getEntityManager()
#5 C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php(32): App\\Action\\TipoProdutoAction->salvarTipoProduto(Array)
#6 [internal function]: TipoProdutoTest->testConsegueInserir()
#7 C:\\xampp\\php\\pear\\PHPUnit\\Framework\\TestCase.php(975): Reflection in C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php on line 9
PHP Fatal error:  PHPUnit_Util_Fileloader::(): Failed opening required 'C:/xampp/htdocs/app/api/src/Doctrine/ORM/Configuration.php' (include_path='C:\\xampp\\php\\PEAR') in C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php on line 9

Warning: Uncaught PHPUnit_Framework_Error_Warning: require(C:/xampp/htdocs/app/api/src/Doctrine/ORM/Configuration.php): failed to open stream: No such file or directory in C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php:9
Stack trace:
#0 C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php(9): PHPUnit_Util_ErrorHandler::handleError(2, 'require(C:/xamp...', 'C:\\\\xampp\\\\htdocs...', 9, Array)
#1 C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php(9): require()
#2 [internal function]: PHPUnit_Util_Fileloader::('Doctrine\\\\ORM\\\\Co...')
#3 C:\\xampp\\htdocs\\app\\api\\src\\Bootstrap.php(37): spl_autoload_call('Doctrine\\\\ORM\\\\Co...')
#4 C:\\xampp\\htdocs\\app\\api\\src\\App\\Action\\TipoProdutoAction.php(12): Bootstrap::getEntityManager()
#5 C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php(32): App\\Action\\TipoProdutoAction->salvarTipoProduto(Array)
#6 [internal function]: TipoProdutoTest->testConsegueInserir()
#7 C:\\xampp\\php\\pear\\PHPUnit\\Framework\\TestCase.php(975): Reflection in C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php on line 9

Fatal error: PHPUnit_Util_Fileloader::(): Failed opening required 'C:/xampp/htdocs/app/api/src/Doctrine/ORM/Configuration.php' (include_path='C:\\xampp\\php\\PEAR') in C:\\xampp\\htdocs\\app\\api\\tests\\TipoProdutoTest.php on line 9



Caso alguem tenha alguma ideia, que eu possa testar, será de grande ajuda...

Muito obrigado.
Hugo

Hugo

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar