[ZF 1.10] Problème de Test Unitaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [ZF 1.10] Problème de Test Unitaire

[ZF 1.10] Problème de Test Unitaire

par BaLiSTiK » 24 oct. 2013, 15:35

Bonjour,

Je fais mes premier pas en TU sous Zend, donc je m'entraines à coder des TU pas franchement pertinant, mais plus pour m'entrainer à comprendre comment ça fonctionne et il y en a un qui me pose soucis.

Mon TU doit juste tester un retour de résultat de requête SQL suivant le paramètre envoyé et le comparer avec une valeur.
Or, en local et sur la plateforme Jenkins je me retrouve avec deux résultats différents :

- En local : mon TU se banane avant de finir, me levant une exception disant "Primary Key colomns (param_id) are not columns in this table()". Avec du pas à pas, j'ai reussi à trouver que l'exception était levée dans Zend_Db_Table_Abstract et que c'est la méthode __setupMetadata() censée remonté les metadonnées de ma table qui retourne nulle (pourquoi je ne sais pas...)

- Sur Jenkins : j'ai cette erreur :

Code : Tout sélectionner

ParamTest::testGetValueByParam Zend_Application_Bootstrap_Exception: Circular resource dependency detected
Voila le code mon TU :
require_once dirname(__FILE__) . '/../../' . 'init.php';

// Oft_PHPUnit_ControllerTestCase
// Zend_Test_PHPUnit_ControllerTestCase
// Zend_Test_PHPUnit_DatabaseTestCase
// PHPUnit_Framework_TestCase

class ParamTest extends PHPUnit_Framework_TestCase
{
    
    public function setUp()
    {
        parent::setUp();
        Oft_App::getInstance()->getDb();
    }

    public function testGetValueByParam ()
    {
        // Preparation
        $oParam = new Admin_Model_Table_Param();
        
        // Appel
        $result = $oParam->getValueByParam('nbjour');
        
        // Verification
        $this->assertEquals(15, $result);
    }
    
}
et ma classe (en résumé) :
/**
 * Table 'parametres'
 */
class Admin_Model_Table_Param extends Icip_Model_Table
{

    protected $_name = 'parametres';
    protected $_primary = 'param_id';
    protected $_idColumn = 'param_id';
    protected $_nameColumn = 'param_nom';

    public function getTable ()
    {
        return $this->_name;
    }
    
    /**
     * Methode recuperant la valeur d'un parametre
     * suivant le nom du parametre
     */
    public function getValueByParam ($param)
    {
        $select = $this->select();
        $select->from($this->getTable(), "param_value");
        $select->where("param_nom=?", $param);
        
        $result = $select->query()->fetch();
        return $result["param_value"];
    }
}
La méthode getValueByParam () fonctionne très bien dans l'application, elle n'est pas en cause.
Merci d'avance :D