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

好的,

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

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

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

  • 逐行分隔您的属性

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

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

于 2012-12-06T11:08:43.513 回答