TheGreenDragon
Erfahrenes Mitglied
Hi,
versuche grad Tests zu schreiben und arbeite mit SimpleTest da es sich im Gegensatz zu PHPUnit so simple anhörte ^^
Nun ja der Schein muss wohl trügen, denn schon bei den einfachsten Sachen streikt PHP.
Hab den Code aus einem Buch: PHP5 für Fortgeschrittene ... naja kann mal jemand bitte drüber schauen, ich raff es einfach nicht mehr...
8.php
11.php
hier noch Screenshot von der Fehlermeldung:
wenn ich das richtig verstehe kommt NULL von meinem Mock Objekt raus, aber der Code ist genau wie im Buch beschrieben.. ich versteh das nicht
versuche grad Tests zu schreiben und arbeite mit SimpleTest da es sich im Gegensatz zu PHPUnit so simple anhörte ^^
Nun ja der Schein muss wohl trügen, denn schon bei den einfachsten Sachen streikt PHP.
Hab den Code aus einem Buch: PHP5 für Fortgeschrittene ... naja kann mal jemand bitte drüber schauen, ich raff es einfach nicht mehr...
8.php
PHP:
<?php
//Eine Klasse zum Speichern von Briefmarken
class StampCollection {
//Ein Array aus Briefmarken-Objekten
private $collection = array();
//Fügt eine Briefmarke in die Kollektion ein
public function add($stamp) {
$this->collection[] = $stamp;
}
//Holt eine Briefmarke aus der Kollektion
public function fetch() {
$stamp = each($this->collection);
if($stamp) {
return $stamp;
}
else {
reset($this->collection);
return FALSE;
}
}
}
//Speichert die Eigenschaften einer einzelnen Briefmarke
class Stamp {
//Name der Briefmarke
public $name;
//Speichert den Preis einer Briefmarke
public $price;
//Erzeugt eine Briefmarke
public function __construct( $name, $price ) {
$this->name = $name;
$this->price = $price;
}
}
?>
11.php
PHP:
<?php
if(!defined('SIMPLE_TEST')) {
define('SIMPLE_TEST','simpletest/');
}
require_once SIMPLE_TEST . 'unit_tester.php';
require_once SIMPLE_TEST . 'mock_objects.php';
require_once SIMPLE_TEST . 'reporter.php';
require_once '8.php';
//Einen MockStamp erzeugen
Mock::generate('Stamp');
//Die Testklasse erstellen
class TestOfStampCollection extends UnitTestCase {
function __construct() {
$this->UnitTestCase('StampCollection');
}
//Mit der Funktion testAdd() einen Test hinzufügen
function testAdd() {
//Das MockStamp-Objekt erzeugen
$mockStamp = new MockStamp($this);
//Die Klassenvariablen setzen
$mockStamp->name = 'Penny Black';
$mockStamp->price = 3500;
//Die Briefmarkensammlung erzeugen
$stampCollection = new StampCollection();
//Den MockStamp in die Briefmarkensammlung einfügen
$stampCollection->add($mockStamp);
//Eine Kopie einer Briefmarke als Rückgabewert
$stampCopy = $stampCollection->fetch();
//die Namen der Briefmarken vergleichen
$this->assertEqual($stampCopy->name, $mockStamp->name);
}
}
$test = new TestOfStampCollection();
$test->run(new HtmlReporter());
?>
hier noch Screenshot von der Fehlermeldung:
wenn ich das richtig verstehe kommt NULL von meinem Mock Objekt raus, aber der Code ist genau wie im Buch beschrieben.. ich versteh das nicht