Unité testant des objets Doctrine avec PHPUnit



Answers

Dans le cas où vous ne l'avez pas déjà trouvé, Jani a posté une approche pour aider à automatiser le processus d'installation / démontage.

http://codeutopia.net/blog/2008/08/27/database-helper-for-phpunit/

Question

Je commence à essayer et tester mes objets Doctrine avec PHPUnit, et je voudrais recharger la DB de mes objets modèles à chaque fois.

Ma première tentative ressemble à ceci:

class Tests_User extends PHPUnit_Framework_TestCase
{

    public function setUp()
    {

        Doctrine_Manager::connection('mysql://user:pass@localhost/testdb');

        Doctrine::createDatabases();
        Doctrine::createTablesFromModels('../../application/models');

    }

    public function testSavingWorks()
    {

        $user = new User();
        $user->save();

    }

    public function testSavingWorksAgain()
    {

        $user = new User();
        $user->save();

    }

    public function tearDown()
    {

        Doctrine::dropDatabases();

    }

}

Le problème est que lorsque setUp () est appelé à nouveau pour le second test, createTablesFromModels () échoue, donc j'obtiens une erreur car aucune des tables n'est présente.

J'apprécierais vraiment un exemple de la façon dont quelqu'un d'autre a réinitialisé une connexion Doctrine pour PHPUnit ou d'autres tests unitaires.




Links