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()
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());
 
?>
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
<?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;
 
	}
 
 }
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
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;
	}
Merci d'avance