PHPUnit Tests

Arndtinho

Erfahrenes Mitglied
Hallo,

ich möchte eine Klasse per PHPUnit testen. Die Klassen, welche ich verwende, liegen
in verschiedenen Orndern:
Code:
root
root/app/myClass.php und myClassTest
root/inc/myIncClass
So ist die Klasse myClass aufgebaut:
PHP:
class MyClass extends myIncClass {... <Methoden> ...}
In der Testklasse habe ich folgendes stehen:
PHP:
define( 'PHPUnit_DIR', '/Path/To/PEAR/' ); 

require_once( $PHPUnit_DIR.'PHPUnit/Framework.php' );
require_once( 'myClass.php'   );

class myClassTest extends PHPUnit_Framework_Testcase {
	
	protected $object;
	
	protected function setUp() {
		$this->object = new myClass();
	}
	
	public function doSomthingTest() {}
}

$test = new myClassTest();
$test->doSomthingTest();
Wenn ich nun die Datei myClassTest.php (im Browser) aufrufe, erhalte ich
folgenden Fehler: Fatal error: Class 'myIncClass' not found

Wieso wird die Klasse nicht gefunden?

Gruß
Arndtinho
 
Wenn mich nicht alles täuscht, machst du die myIncClass auch gar nicht verfügbar?

Du solltest sie noch per [phpf]require[/phpf] einbinden, damit myClass sie überhaupt erweitern kann.
 
Das habe ich schon probiert, führte aber zum gleichen Ergebnis.
Es könnte vielleicht auch an der "Autoload Hierarchie" liegen.

Gruß
Arndtinho
 
So, habe nun folgendes dem Code hinzugefügt:
PHP:
function __autoload( $class ) {
 	require_once '../inc/myIncClass.php';
}
Das gibt es nun keine Fehlermeldung mehr.
In der Methode doSomthingTest möchte ich auf eine Methode des Objekts aus setUp() zugreifen:
PHP:
protected function setUp() {
        $this->object = new myClass();
    }
    
    public function doSomthingTest( $gender ) {
        $this->assertTrue( $this->object->isMen( $gender ) );
}
Nun bekomme ich den Fehler:
Fatal error: Call to a member function isMen() on a non-object

Das versteh ich nun nicht wirklich, da ich mich an dieses Beispiel gehalten habe.
Vielleicht hab ich ja auch einen Denkfehler und komm nicht drauf.

Gruß
Arndtinho
 
Wie sieht denn myClass aus ? Und existiert die Variable object überhaupt ? Ist error_reporting auf E_ALL und E_STRICT ?
 
Hallo,

ich hatte einen Denkfehler. Es funktioniert alles so wie es soll. Die Tests laufen ordnungsgemäß durch. Deswegen hatte ich den Thread auch als erledigt gekennzeichnet.

Weist Du, ob es auch ein Plugin für die Unittests gibt, dass man sich die Sache auch im Browser anschauen kann?

Gruß
Arndtinho
 

Neue Beiträge

Zurück