User Tools

Site Tools


kurs:entwickeln_mit_phpunit

This is an old revision of the document!


Die Klasse

<?php

class Employee {
  var $id, $last_name, $salary;
  var $db;
  
  private function db_connect() {
    $this->db = oci_connect('hr', 'hr', 'orcl');	
  }
  
  function set_last_name($last_name) {
    $this->last_name = $last_name;
  }
  
  function read() {
    $this->db_connect();
	$q = oci_parse($this->db, 
      "select last_name ln, salary 
	     from employees
         where last_name = :b_last_name");	
    oci_bind_by_name
	   ($q, ":b_last_name", $this->last_name);
    $r = oci_execute($q, OCI_DEFAULT);
    $row = oci_fetch_array($q, OCI_ASSOC);
    $this->salary = $row['SALARY'];
  } 
  
  function store() {}
  
  function __set($u, $a) {
    die("ERROR: you tried to set $u with $a");
  }
  
  function __get($u) {
    die("ERROR: you tried to get $u");
  }

  function __call($u, $a) {
    die("ERROR: you tried to call $u with $a");
  }

}

phpunit –skeleton-test Employee

<?php

require_once 'C:\xampp\htdocs\employee\Employee.php';

/**
 * Test class for Employee.
 * Generated by PHPUnit on 2012-01-11 at 15:27:31.
 */
class EmployeeTest extends PHPUnit_Framework_TestCase
{
    /**
     * @var Employee
     */
    protected $object;

    /**
     * Sets up the fixture, for example, opens a network connection.
     * This method is called before a test is executed.
     */
    protected function setUp()
    {
        $this->object = new Employee;
    }

    /**
     * Tears down the fixture, for example, closes a network connection.
     * This method is called after a test is executed.
     */
    protected function tearDown()
    {
    }

    /**
     * @covers {className}::{origMethodName}
     * @todo Implement testSet_last_name().
     */
    public function testSet_last_name()
    {
	    $name = 'Bumsti';
        $this->object->set_last_name($name);
		$this->assertEquals($this->object->last_name, $name);
    }

    /**
     * @covers {className}::{origMethodName}
     * @todo Implement testRead().
     */
    public function testStore()
    {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }

    /**
     * @covers {className}::{origMethodName}
     * @todo Implement testStore().
     */
    public function testRead()
    {
	   $name = 'Fay';
       $this->object->set_last_name($name);
	   $this->object->read();
	   $this->assertEquals(6000, $this->object->salary);
    }
}
?>

phpunit EmployeeTest.php

kurs/entwickeln_mit_phpunit.1326362875.txt.gz · Last modified: 2014/09/10 21:22 (external edit)