Bonjour ,
Je souhaite faire un test et simuler une fonction qui charge toutes mes données sur ma BD , j'arrive a crée mon Mock mais j'ai un soucis pour le format de la ressource en php . En faite lorsque ma fonction s'exécute je teste le nombre de colonnes et le problème est la c'est que ça me retourne une exception "mysql_num_rows() expects parameter 1 to be resource" et si je fais un exceptError(" "mysql_num_rows() expects parameter 1 to be resource") ma méthode ne fonctionne pas correctement , si vous avez une solution , merci d'avance pour votre aide
Classe PERS_PersistanceBDTest()
Classe PERS_PersistanceBDForTest
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <?php ini_set('display_errors', 1); error_reporting(E_ALL | E_STRICT); require_once('simpletest/autorun.php'); require_once('simpletest/unit_tester.php'); require_once('simpletest/mock_objects.php'); require_once('simpletest/web_tester.php'); require_once('simpletest/autorun.php'); require_once 'PERS_PersistanceBDTest.php'; require_once('PERS_PersistanceBDForTest.php'); Mock::generate("PERS_Connexion"); class PERS_PersistanceBDTest extends UnitTestCase { var $mockConnexion; var $Persistance; function testPERS_PersistanceBDchargerIsInstaceofMember(){ $this->mockConnexion=&new MockPers_Connexion($this); $this->Persistance=new PERS_PersistanceBDForTest($this->mockConnexion); $this->expectError("mysql_num_rows() expects parameter 1 to be resource, array given"); $tab=$this->Persistance->charger(); } } } $test= new PERS_PersistanceBDTest(); $test->run(new HtmlReporter()); ?>
Methode Charger()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <?php require_once('simpletest/autorun.php'); require_once('simpletest/unit_tester.php'); require_once('simpletest/mock_objects.php'); require_once('simpletest/web_tester.php'); require_once('simpletest/autorun.php'); ini_set('display_errors', 1); error_reporting(E_ALL | E_STRICT); include_once('ExportFromBD.php'); require_once('simpletest/mock_objects.php'); require_once('DATA_MembreTest.test.php'); class PERS_PersistanceBDForTest extends PERS_PersistanceBD { function __construct($mock){ $this->connexion = $mock; $this->connexion->returns('query', $GLOBALS['membre'], array('SELECT DISTINCT membre.email AS email ,droit,membre.nom AS nom ,membre.nom_jeune_fille as nomjf,prenom,mdp,membre.rue ,membre.code_postal as code_postal,membre.ville as ville,promo.id as idPromo,promo.diplome,promo.annee,promo.filiere,membre.departement as departement,membre.pays as pays,diplome,annee,filiere,membre.entreprise AS nomEntreprise FROM membre,promo,entreprise WHERE membre.promo=promo.id ORDER BY email')); $this->connexion->returns('query',$GLOBALS['donneeAnthony'],array("Select DISTINCT * from donnee WHERE email='palmieri.anthony@hotmail.fr'")); $this->connexion->returns('query',$GLOBALS['donneeLudovic'],array("Select DISTINCT * from donnee WHERE email='mouline.ludovic@etu.unice.fr'")); $this->connexion->returns('query',$GLOBALS['entreprise'],array("SELECT DISTINCT * FROM entreprise WHERE nom='apple'")); $this->connexion->query("Select DISTINCT * from donnee WHERE email='mouline.ludovic@etu.unice.fr'"); } public function retournMock(){ return $this->connexion; } }
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 public function charger() { if ($this->connexion) { $membre= array(); $queryMembre="SELECT DISTINCT membre.email AS email ,droit,membre.nom AS nom ,membre.nom_jeune_fille as nomjf,prenom,mdp,membre.rue ,membre.code_postal as code_postal,membre.ville as ville,promo.id as idPromo,promo.diplome,promo.annee,promo.filiere,membre.departement as departement,membre.pays as pays,diplome,annee,filiere,membre.entreprise AS nomEntreprise FROM membre,promo,entreprise WHERE membre.promo=promo.id ORDER BY email"; $result=$this->connexion->query($queryMembre); print_r($result); if (mysql_num_rows($result) == 0) { return false; } while($ligne=mysql_fetch_array($result,MYSQL_ASSOC)) { $query="Select DISTINCT * from donnee WHERE email='".$ligne["email"]."'"; $queryDonnee=$this->connexion->query($query); if (mysql_num_rows($queryDonnee) == 0) { }else{ while($donnee=mysql_fetch_array($queryDonnee,MYSQL_ASSOC)){ $ligne[$donnee["type"]]=$donnee["contenu"]; } } $queryEntreprise="SELECT DISTINCT * FROM entreprise WHERE nom='".$ligne["nomEntreprise"]."'"; $queryEntreprise=$this->connexion->query($queryEntreprise); while($donneeEntreprise=mysql_fetch_array($queryEntreprise,MYSQL_ASSOC)){ if (mysql_num_rows($result) == 0) { $ligne["entreprise"]=null; }else{ $adresseEntreprise= new DATA_Adresse($donneeEntreprise["ville"], $donneeEntreprise["departement"], $donneeEntreprise["rue"], $donneeEntreprise["pays"], $donneeEntreprise["code_postal"]); $ligne["entreprise"]= new DATA_Entreprise($donneeEntreprise["nom"], $donneeEntreprise["email"], $adresseEntreprise); } } $adresseMembre= new DATA_Adresse($ligne["ville"], $ligne["departement"], $ligne["rue"], $ligne["pays"], $ligne["code_postal"]); $ligne['adresse']=$adresseMembre; $promo= new DATA_Promo($ligne["annee"], $ligne["filiere"], $ligne["diplome"], $ligne["idPromo"]); $ligne["promo"]=$promo; $member=new DATA_Membre($ligne); $membre[$ligne["email"]]=$member; } } return $membre; }
Partager