尝试使用phpunit获取非对象错误的属性

时间:2012-12-06 10:49:48

标签: php phpunit

我开始玩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);
    }
}

我认为我遗漏了一些基本/明显的东西?

1 个答案:

答案 0 :(得分:2)

确定,

  • 首先,正如我在评论中所说:
  

首先从PHP 5.3.3开始,您的“员工”将不会被视为   构建但只是常规方法。使用__construct作为构造函数。   检查你有哪个版本的PHP。

  • 在您的方法Employee中调用不存在的方法setEmployeeId

  • 逐行分隔您的媒体资源

  • 在定义方法时使用public / protected / private

  • 在断言中,期望值应作为第一个参数传递