0

私はphpunitで遊び始めていますが、OO PHPへの露出は限られているので、基本的な何かが欠けていると思います。非常に単純なテストを設定すると、エラーが発生しますTrying to get property of non-object

これは私がテストしようとしているものです

class Employee
{
    protected $jobTypeModifier, $manager, $id;
    public $name, $employee, $years, $allowances, $allowances_left, $extra, $carried, $totalTaken, $holidays;

    function Employee($id)
    {
        $this->jobTypeModifier = 1;
        $this->manager = 0;
        $this->totalTaken = 0;
        $this->setEmployeeId($id);
    }

    function myId()
    {
        return $this->id;
    }
}

そしてこれは私のテストです

class EmployeeTest extends PHPUnit_Framework_TestCase
{
    protected $employee;

    protected function setUp(){
        $this->employee = new Employee(1);
    }

    protected function tearDown() {
        unset($this->employee);
    }

    public function testMyId()
    {
        $actual = $this->employee->myId();
        $expected = 1;
        $this->assertEquals($actual, $expected);
    }
}

私はここで基本的/明白な何かが欠けていると思いますか?

4

1 に答える 1

1

Ok、

  • まず、コメントで言ったように:

まず、PHP 5.3.3から、「従業員」は構成として扱われず、通常のメソッドとして扱われます。コンストラクターとして__constructを使用します。PHPのバージョンを確認してください。

  • メソッドで、存在しないメソッドEmployeeを呼び出しますsetEmployeeId

  • プロパティを1行ずつ区切ります

  • メソッドを定義するときは、public / protected/privateを使用してください

  • アサーションでは、期待値は最初の引数として渡される必要があります

于 2012-12-06T11:08:43.513 に答える