Refresh errors

Discussion of testing theory and practice, including methodologies (such as TDD, BDD, DDD, Agile, XP) and software - anything to do with testing goes here. (Formerly "The Testing Side of Development")

Moderator: General Moderators

Post Reply
kpraman
Forum Contributor
Posts: 172
Joined: Fri Oct 13, 2006 10:54 am

Refresh errors

Post by kpraman »

After writing the testcase, when i run, i get the output like this...

TestCase CategoriesTest->testing_insert() passed
TestCase CategoriesTest->testing_insertNotable() passed
TestCase CategoriesTest->testing_update() passed
TestCase CategoriesTest->testing_updateNoTable() passed
TestCase CategoriesTest->testing_insertData() passed
TestCase CategoriesTest->testing_updateData() passed
TestCase CategoriesTest->test_Delete() passed


But if i press F5 sometimes i get error messages from the testcases. Is it normal or something is wrong with the testcase. I also want to know what is the next step after i get the output like above.
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

If they randomly fail, you likely have something wrong with your test cases that's allowing random information to corrupt them.
kpraman
Forum Contributor
Posts: 172
Joined: Fri Oct 13, 2006 10:54 am

Post by kpraman »

It does not happen, if i press refresh cleanly. If i press F5 continously about 4> without letting it to run then if i leave i get errors
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

Spamming a refresh shouldn't alter the outcome of the tests.
User avatar
Weirdan
Moderator
Posts: 5978
Joined: Mon Nov 03, 2003 6:13 pm
Location: Odessa, Ukraine

Post by Weirdan »

Spamming a refresh shouldn't alter the outcome of the tests.
Unless unit under test isn't properly isolated from outside world (for example, it may use db directly)
kpraman
Forum Contributor
Posts: 172
Joined: Fri Oct 13, 2006 10:54 am

Post by kpraman »

Class:

Code: Select all

<?php
require_once('database.php');

// This class does the following:

// AddOrUpdateMember method adds records or updates
// DeleteMember method deletes member
// DisableMember method disables member
// EnableMember method enables member
// GetMemberList method returns records of all members


class Members
{

       function AddOrUpdateMember($memberTypeId,$memberFName,$memberLName,$memberAddress,$memberCity,$memberState,$memberZip,$memberCountry,$memberPhone,$memberEmail,$memberFax,$enableFlag,$memberId,$table)
		 {
			if(empty($memberId) && !empty($table)){
			      //if memberid is blank a new record is inserted
			       $query_ins=mysql_query("INSERT INTO $table SET memberTypeId='$memberTypeId', memberFName='$memberFName', memberLName='$memberLName', memberAddress='$memberAddress', memberCity='$memberCity', memberState='$memberState', memberZip='$memberZip', memberCountry='$memberCountry', memberPhone='$memberPhone', memberEmail='$memberEmail', memberFax='$memberFax',enableFlag='$enableFlag'");
				   if(mysql_affected_rows()>0)
				     return 'insert';
				}
			
			
			if(!empty($memberId) && !empty($table)){
			    //if memberid is not blank, the memberid's record is updated
			     $query_insNoTable=mysql_query("UPDATE $table SET memberTypeId='$memberTypeId', memberFName='$memberFName', memberLName='$memberLName', memberAddress='$memberAddress', memberCity='$memberCity', memberState='$memberState', memberZip='$memberZip', memberCountry='$memberCountry', memberPhone='$memberPhone', memberEmail='$memberEmail', memberFax='$memberFax',enableFlag='$enableFlag' WHERE memberId='$memberId'");
				     if($query_insNoTable)
					    return 'update';
				}
		 }

	 
	     function DeleteMember($memberId, $table)
	      {
		    //memberid's record is deleted
		    $query=mysql_query("DELETE FROM $table WHERE memberId='$memberId'");
				//on success 1 is returned
			return $query;	
		  }


          
		 function EnableMember($memberId, $table)
	      {
		    //enables a member
		    $query=mysql_query("UPDATE $table SET enableFlag='true' WHERE memberId='$memberId'");
           //on success 1 is returned
			return $query;
		  }


		    //disables a member
	     function DisableMember($memberId, $table)
		  {
		    $query=mysql_query("UPDATE $table SET enableFlag='false' WHERE memberId='$memberId'");
             //on success 1 is returned
			return $query;
		  }
		
	 

	    function GetMemberList($table)
	      {
		  //returns all records
		  $arr=array();
		  if(!empty($table)){
		   $query=mysql_query("SELECT * FROM $table");
			while($row=mysql_fetch_array($query))
			  {
			     array_push($arr,$row);
			  }
			}
			 return $arr;
		 }
		 
		 
	  function DeleteAll($table)
	   {
	     $query=mysql_query("DELETE FROM $table");
		 return $query;	   
	   }
	   
	   
	 function GetMemberDetails($memberId,$table)
	    {
		   if(!empty($memberId) && !empty($table)){
		   $query=mysql_query("SELECT * FROM $table WHERE memberId=$memberId");
		   $res=mysql_fetch_array($query);
		   return $res;
		  }		
		}	   
}

?>

Tescase:

Code: Select all

<?php


		set_include_path("library/");

		require_once 'members.php';
		require_once 'PHPUnit/Framework/TestCase.php'; 
		require_once 'PHPUnit.php';
		
		
		print("<b>TEST CASE FOR MEMBERS CLASS</b>");
		
		

class MembersTest extends PHPUnit_TestCase {

      public function cleanup()
	     {
		      $qdel=mysql_query("SELECT * FROM members");
				if(mysql_num_rows($qdel)>0)
				   {
				       $del=mysql_query("TRUNCATE members");
				   }
 
		 }      


	   public function testing_insert()
	   	 {
				$this->cleanup();
         	    $newins=new Members;
          	    $actual=$newins->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
				$expected='insert';
				$this->assertEquals($expected, $actual, "COULD NOT INSERT");
				$this->cleanup();

		 }
		
	 
	 
	   public function testing_insertNotable()
	    {
		    $this->cleanup();
            $newinsnot=new Members;
            $actual_INoTable=$newinsnot->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','');
			$this->assertNull($actual_NoTable, "INSERTING WITHOUT TABLE NAME");
			$this->cleanup();

		}
		

       public function testing_update()
	   	 {
		        $this->cleanup();
         	    $newupdate=new Members;
          	    $newupdate->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
				$memberidU=mysql_insert_id();
          	    $actual_Update=$newupdate->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123456','true',$memberidU,'members');
				$expupdte='update';
				$this->assertEquals($expupdte, $actual_Update, "COULD NOT UPDATE");
				$this->cleanup();

		 }
		 
		 
       public function testing_updateNoTable()
	   	 {
		        $this->cleanup();
         	    $newupdatenot=new Members;
          	    $newupdatenot->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
				$memberidUnot=mysql_insert_id();
          	    $actual_UpdateNotable=$newupdatenot->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123456','true',$memberidU,'');
			    $this->assertNull($actual_UpdateNotable, "UPDATING WITHOUT TABLE NAME");
				$this->cleanup();				

		 }

		
	   
	 public function testing_insertData()
	    {
		    $this->cleanup();
			$newinsertdata=new Members;
            $dbActualinsertd=$newinsertdata->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $memberid_insertd=mysql_insert_id();
			$resExpectedInsertd=array((string)$memberid_insertd,'1','a','c','d','e','f','123','h','123','j','123','false');
		   
		    $query=mysql_query("SELECT * FROM members WHERE memberId=$memberid_insertd");
            $resActualInsertd=mysql_fetch_row($query);
			$this->assertEquals($resExpectedInsertd,$resActualInsertd, "COULD NOT INSERT DATA.");
			$this->cleanup();
		}



	
	public function testing_updateData()
	   {
		    $this->cleanup();
			$newupdatedata=new Members;
            $newupdatedata->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $memberid_updated=mysql_insert_id();
			
			$dbExpectedupdated=array((string)$memberid_updated,'2','b','d','e','f','g','456','i','456','k','456','true');
			
            $newupdatedata->AddOrUpdateMember('2','b','d','e','f','g','456','i','456','k','456','true',$memberid_updated,'members');
			$q1=mysql_query("SELECT * FROM members WHERE memberId=$memberid_updated");
			$dbActualupdated=mysql_fetch_row($q1);
			
			$this->assertEquals($dbExpectedupdated, $dbActualupdated, "COULD NOT UPDATE DATA");
			$this->cleanup();
	   }



       public function test_GetMemberDetails()
	      {
		    $this->cleanup();
			$newGetMemberDetails=new Members;
            $newGetMemberDetails->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $IdGetMemberDetails=mysql_insert_id();
            
			$query_Get=mysql_query("SELECT * FROM members WHERE memberId=$IdGetMemberDetails");
		    $Expected_res=mysql_fetch_array($query_Get);
			
			$Actual_res=$newGetMemberDetails->GetMemberDetails($IdGetMemberDetails,'members');
			
			$this->assertEquals($Expected_res, $Actual_res, "COULD NOT UPDATE DATA");
			$this->cleanup();
		  }
		  
		  
	
	
	 public function test_GetMemberDetailsNoT()
	      {
		    $this->cleanup();
			$newGetMemberDetailsNoT=new Members;
            $newGetMemberDetailsNoT->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $IdGetMemberDetailsNoT=mysql_insert_id();
            
			$Actual_resNoT=$newGetMemberDetailsNoT->GetMemberDetails($IdGetMemberDetailsNoT,'');
			
			$this->assertNull($Actual_resNoT, "UPDATING WITHOUT TABLE NAME");
			$this->cleanup();
		  }
		  
	
		  
		  
  public function test_GetMemberDetailsNoId()
	      {
		    $this->cleanup();
			$newGetMemberDetailsNoId=new Members;
            $newGetMemberDetailsNoId->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
            $IdGetMemberDetailsNoId=mysql_insert_id();
            
			$Actual_resNoId=$newGetMemberDetailsNoId->GetMemberDetails($IdGetMemberDetailsNoId,'');
			
			$this->assertNull($Actual_resNoId, "UPDATING WITHOUT TABLE NAME");
			$this->cleanup();
		  }


     	public function test_DeleteNoid()
	    {
		  $this->cleanup();
		  $newDelNoId=new Members;
          $dbActualDelNoId=$newDelNoId->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','true','','members');
          $memberid_DeleteNoId=mysql_insert_id();
		  
		  $queryDelNoId=mysql_query("SELECT * FROM members WHERE memberId=$memberid_DeleteNoId");
		  $arrExp_delNoId=mysql_fetch_array($queryDelNoId);
			
	      $newDelNoId->DeleteMember('','members');
		  
		  $queryDelNoId1=mysql_query("SELECT * FROM members WHERE memberId=$memberid_DeleteNoId");
		  $arrActual_delNoId=mysql_fetch_array($queryDelNoId1);
		  $this->assertEquals($arrExp_delNoId, $arrActual_delNoId, "DELETING WITHOUT MEMBERID");
		  $this->cleanup();
	   }
	   


	   
	public function test_Delete()
	    {
		  $this->cleanup();
		  $newDel=new Members;
          $dbActualDel=$newDel->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','true','','members');
          $memberid_Delete=mysql_insert_id();
		  
		  $queryDel=mysql_query("SELECT * FROM members");
		  while($del=mysql_fetch_array($queryDel))
		    {
		          $arrExp_del[]=mysql_fetch_array($queryDel);
		    }
		   
	      $newDel->DeleteMember($memberid_Delete,'members');
		  
		  $queryDelA=mysql_query("SELECT * FROM members");
		  while($delA=mysql_fetch_array($queryDelA))
		    {
		          $arrExp_delA[]=mysql_fetch_array($delA);
		    }
		
		 if(count($arrExp_del)>0 && count($arrExp_delA==0))
		    {
			     $DelExp=0;
			}
		  
		  $this->assertEquals($DelExp, count($arrExp_delA), "DELETING WITHOUT TABLE NAME");
		  $this->cleanup();
	   }

	 
	 
	   
	 public function test_DeleteNotable()
	    {
		  $this->cleanup();
		  $newDelNoTable=new Members;
          $dbActualDelNoTable=$newDelNoTable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','true','','members');
          $memberid_DeleteNoTable=mysql_insert_id();
		  
		  $queryDelNoTable=mysql_query("SELECT * FROM members WHERE memberId=$memberid_DeleteNoTable");
		  $arrExp_delNoTable=mysql_fetch_array($queryDelNoTable);
			
	      $newDelNoTable->DeleteMember($memberid_DeleteNoTable,'');
		  
		  $queryDelNoTable1=mysql_query("SELECT * FROM members WHERE memberId=$memberid_DeleteNoTable");
		  $arrActual_delNoTable=mysql_fetch_array($queryDelNoTable1);
		  $this->assertEquals($arrExp_delNoTable, $arrActual_delNoTable, "DELETING WITHOUT TABLE NAME");
		  $this->cleanup();
	   }


    public function test_EnableMember() 
	  {
		  $this->cleanup();
          $newEnable=new Members;
          $newEnable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidEnable=mysql_insert_id();
		  
		  $queryEnable=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnable");
		  $queryresEnable=mysql_fetch_array($queryEnable);
		  
		  $newEnable->EnableMember($memberidEnable, 'members');
		  $expectedEnable='true';
		  
		  $queryEnable1=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnable");
		  $queryresEnable1=mysql_fetch_array($queryEnable1);
		  $actualEnable=$queryresEnable1['enableFlag'];

		  $this->assertEquals($expectedEnable,$actualEnable, "COULD NOT ENABLE");
		  $this->cleanup();
	  }	


  public function test_EnableMemberNoMemberid() 
	  {
		  $this->cleanup();
          $newEnableNoId=new Members;
          $newEnableNoId->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidEnableNoId=mysql_insert_id();
		  
		  $queryEnableNoId=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnableNoId");
		  $queryresEnableNoId=mysql_fetch_array($queryEnableNoId);
		  $expectedEnableNoId=$queryresEnableNoId['enableFlag'];
		  
		  $newEnableNoId->EnableMember('', 'members');
		  
		  $queryEnableNoId1=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnableNoId");
		  $queryresEnableNoId1=mysql_fetch_array($queryEnableNoId1);
		  $actualEnableNoId=$queryresEnableNoId1['enableFlag'];
		  
		  $this->assertEquals($expectedEnableNoId,$actualEnableNoId, "ENABLING WITHOUT MEMBERID");
		  $this->cleanup();
	  }	



    public function test_EnableMemberNoTable() 
	  {
		  $this->cleanup();
          $newEnableNoTable=new Members;
          $newEnableNoTable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidEnableNoTable=mysql_insert_id();
		  
		  $queryEnableNoTable=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnableNoTable");
		  $queryresEnableNoTable=mysql_fetch_array($queryEnableNoTable);
		  $expectedEnableNoT=$queryresEnableNoTable['enableFlag'];
		  
		  $newEnableNoTable->EnableMember('', 'members');
		  
		  $queryEnableNoTable1=mysql_query("SELECT * FROM members WHERE memberId=$memberidEnableNoTable");
		  $queryresEnableNoTable1=mysql_fetch_array($queryEnableNoTable1);
		  $actualEnableNoT=$queryresEnableNoTable1['enableFlag'];
		  
		  $this->assertEquals($expectedEnableNoT,$actualEnableNoT, "ENABLING WITHOUT TABLE NAME");
		  $this->cleanup();
	  }	



    public function test_DisableMember() 
	  {
		  $this->cleanup();
          $newDisable=new Members;
          $newDisable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','true','','members');
		  $memberidDisable=mysql_insert_id();
		  
		  $queryDisable=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisable");
		  $queryresDisable=mysql_fetch_array($queryDisable);
		  
		  $newDisable->DisableMember($memberidDisable, 'members');
		  $expectedDisable='false';
		  
		  $queryDisable1=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisable");
		  $queryresDisable1=mysql_fetch_array($queryDisable1);
		  $actualDisable=$queryresDisable1['enableFlag'];
		  $this->assertEquals($expectedDisable,$actualDisable, "COULD NOT DISABLE");
		  $this->cleanup();
	  }	


  public function test_DisableMemberNoMemberid() 
	  {
		  $this->cleanup();
          $newDisableNoId=new Members;
          $newDisableNoId->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidDisableNoId=mysql_insert_id();
		  
		  $queryDisableNoId=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisableNoId");
		  $queryresDisableNoId=mysql_fetch_array($queryDisableNoId);
		  $expectedDisableNoId=$queryresDisableNoId['enable'];
		  
		  $newDisableNoId->DisableMember('', 'members');
		  
		  $queryDisableNoId1=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisableNoId");
		  $queryresDisableNoId1=mysql_fetch_array($queryDisableNoId1);
		  $actualDisalbeNoId=$queryresDisableNoId1['enable'];
		  
		  $this->assertEquals($expectedDisableNoId,$actualDisalbeNoId, "DISABLING WITHOUT MEMBERID");
		  $this->cleanup();
	  }	



    public function test_DisableMemberNoTable() 
	  {
		  $this->cleanup();
          $newDisableNoTable=new Members;
          $newDisableNoTable->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		  $memberidDisableNoTable=mysql_insert_id();
		  
		  $queryDisableNoTable=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisableNoTable");
		  $queryresDisableNoTable=mysql_fetch_array($queryDisableNoTable);
		  $expectedDisableNoT=$queryresDisableNoTable['enable'];
		  
		  $newDisableNoTable->DisableMember('', 'members');
		  
		  $queryDisableNoTable1=mysql_query("SELECT * FROM members WHERE memberId=$memberidDisableNoTable");
		  $queryresDisableNoTable1=mysql_fetch_array($queryDisableNoTable1);
		  $actualDisableNoT=$queryresDisableNoTable1['enable'];
		  $this->assertEquals($expectedDisableNoT,$actualDisableNoT, "DISABLING WITHOUT TABLE NAME");
		  $this->cleanup();
	  }	



     public function test_GetMemberList()
	    {
		   $this->cleanup();
		   $newGetMemberListTest=new Members;
		   for($i=0;$i<=2;$i++){
		   $newGetMemberListTest->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		   }
		   
		  $query_get=mysql_query("SELECT * FROM members");
		  while($res=mysql_fetch_array($query_get))
		    {
			    $arrExpected[]=$res;
			}
		  $arrActual=$newGetMemberListTest->GetMemberList('members');
		  $this->assertEquals($arrExpected,$arrActual, "COULD NOT FETCH DATA");
		  $this->cleanup();
		}
		
		

     public function test_GetMemberListNoTable()
	    {
		   $this->cleanup();
		   $newGetMemberListTest=new Members;
		   for($i=0;$i<=2;$i++){
		   $newGetMemberListTest->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
		   }
		  $expGetMemListNoTable=array();
		  $arrActualNoTable=$newGetMemberListTest->GetMemberList('');
		  $this->assertEquals($expGetMemListNoTable,$arrActualNoTable, "RETRIVING DATA WITHOUT TABLE NAME");
		  $this->cleanup();
		}




     public function test_DeleteAll()
	   {
		  $this->cleanup();
	      $newDeleteAll=new Members;
		  for($i=0;$i<=6;$i++){
          $newDeleteAll->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
          }
	      $queryDeleteAll=mysql_query("SELECT * FROM members");
          while($resDeleteAll=mysql_fetch_array($queryDeleteAll))
		    {
			   $resD[]=$resDeleteAll;
			}
			
	      $befdel=count($resD);
		  $newDeleteAll->DeleteAll('members');
		  
		  $queryDeleteAll1=mysql_query("SELECT * FROM members");
          while($resDeleteAll1=mysql_fetch_array($queryDeleteAll1))
		    {
			   $resD1[]=$resDeleteAll1;
			}
         $aftdel=count($resD1);
		 
		 if($befdel>0 && aftdel==0)
		   {
		      $expDeleteAll=0;
		   }
		  $this->assertEquals($expDeleteAll,$aftdel, "COULD NOT DELETE DATA");
		  $this->cleanup();
	   }		



    public function test_DeleteAllNoTable()
	   {
		  $this->cleanup();
	      $newDeleteAllNoT=new Members;
		  for($i=0;$i<=6;$i++){
          $newDeleteAllNoT->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
          }
	      $queryDeleteAllNoT=mysql_query("SELECT * FROM members");
          while($resDeleteAllNoT=mysql_fetch_array($queryDeleteAllNoT))
		    {
			   $resDNoT[]=$resDeleteAllNoT;
			}
			
		  $newDeleteAllNoT->DeleteAll('');
		  
	      $queryDeleteAllNoT1=mysql_query("SELECT * FROM members");
          while($resDeleteAllNoT1=mysql_fetch_array($queryDeleteAllNoT1))
		    {
			   $resDNoT1[]=$resDeleteAllNoT1;
			}
			
	    $this->assertEquals($resDNoT,$resDNoT1, "DELETING DATA WITHOUT TABLE NAME");
		
	    $this->cleanup();
	   }
	   
	
 }
 
 $suite  = new PHPUnit_TestSuite('MembersTest');
 $result = PHPUnit::run($suite);
 
 print $result->toHTML();
 ?>

So, what's wrong with the above code. if i had to isolate. anything how to do that?
User avatar
Maugrim_The_Reaper
DevNet Master
Posts: 2704
Joined: Tue Nov 02, 2004 5:43 am
Location: Ireland

Post by Maugrim_The_Reaper »

Typically the database - you should be using a clean database with each new test run. i.e. set it up, use it, get rid of it... This also ensures subsequent tests using the same database schema can be run without earlier tests contaminating it.
kpraman
Forum Contributor
Posts: 172
Joined: Fri Oct 13, 2006 10:54 am

Post by kpraman »

You meant to say that I should connect to database for each method then at the end of the method i.e after cleanup() i should close the database connection?
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

kpraman wrote:You meant to say that I should connect to database for each method then at the end of the method i.e after cleanup() i should close the database connection?
Yes. setUp() and tearDown() in your testing framework are for this.

Don't think too much about the overhead of creating such an environment. These are only the tests.
kpraman
Forum Contributor
Posts: 172
Joined: Fri Oct 13, 2006 10:54 am

Post by kpraman »

Weirdan | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


Thanks.  Can i use same variable names in all the methods?

For example,

Code: Select all

public function testing_UpdateInv()
 {
	$this->cleanup();
	$newinsert=new invoice;
	$newinsertdata=new InvoiceItems;
	$dbActualinsertd=$newinsert->CreateInvoice('1','100','2006-01-01','invoice');
	$invid_insertd=mysql_insert_id();
				
          	$newinsertdata->AddOrUpdInvItem('book2', '600', '6', $invid_insertd,'','invoiceitems');
	$id=mysql_insert_id();
	$newinsertdata->AddOrUpdInvItem('book4', '1000', '10', $invid_insertd,$id,'invoiceitems');
				
	$expected=array((string)$invid_insertd, (string)$invid_insertd, 'book4', '1000', '10');
				
	$query=mysql_query("SELECT * FROM invoiceitems WHERE invoiceId=$invid_insertd");
	$actual=mysql_fetch_row($query);
				
	$this->assertEquals($expected, $actual, "COULD NOT INSERT");
	$this->cleanup();
			
}
		 
		 
public function testing_UpdateInvNoT()

  {
	$this->cleanup();
	$newinsert=new invoice;
	$newinsertdata=new InvoiceItems;
	$dbActualinsertd=$newinsert->CreateInvoice('1','100','2006-01-01','invoice');
	$invid_insertd=mysql_insert_id();
				
          	$newinsertdata->AddOrUpdInvItem('book2', '600', '6', $invid_insertd,'','invoiceitems');
	$id=mysql_insert_id();
				
	$newinsertdata->AddOrUpdInvItem('book4', '1000', '10','',invid_insertd,'invoiceitems');
				
	$expected=array((string)$invid_insertd, (string)$invid_insertd, 'book2', '600', '6');
				
	$query=mysql_query("SELECT * FROM invoiceitems WHERE invoiceId=$invid_insertd");
	$actual=mysql_fetch_row($query);
			
	$this->assertEquals($expected, $actual, "COULD NOT INSERT");
	$this->cleanup();

 }
The first method is for update and second method is for updating without table name


Weirdan | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
User avatar
John Cartwright
Site Admin
Posts: 11470
Joined: Tue Dec 23, 2003 2:10 am
Location: Toronto
Contact:

Post by John Cartwright »

$normal variables are limited in the scopeof the method.
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

I can't recommend strongly enough that you use at least some level of abstraction to access your database... even if that simply means wrapping calls to the native MySQL functions in a class. It will make testing much easier to simulate situations with your data (i.e. you can mock the db completely).

It may also be worth refactoring your test case so that you can have a factory method return the invoice your are creating each time here :)
kpraman
Forum Contributor
Posts: 172
Joined: Fri Oct 13, 2006 10:54 am

Post by kpraman »

Variables are limited in its scope? if yes, can i safely use same variable names in all the methods?
kpraman
Forum Contributor
Posts: 172
Joined: Fri Oct 13, 2006 10:54 am

Post by kpraman »

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


I have written the code like this,

Code: Select all

public function DB()
 {
    mysql_connect(localhost,'root','');
    mysql_select_db('pics4news');
 }     


public function cleanup()
{
     $this->DB();
     $qdel=mysql_query("SELECT * FROM members");

    if(mysql_num_rows($qdel)>0)
      {
         $del=mysql_query("TRUNCATE members");
      }
 
} 
		 


public function testing_insert()
 {
     $this->cleanup();
     $this->DB();
     $newins=new Members;
     $actual=$newins->AddOrUpdateMember('1','a','c','d','e','f','123','h','123','j','123','false','','members');
$expected='insert';
$this->assertEquals($expected, $actual, "COULD NOT INSERT");
$this->cleanup();
mysql_close();

 }
to seperate the db connection. I am calling the DB() method for each methods and at the end of each method i am closing the DB with mysql_close(). Is the above method correct?


feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
Post Reply