0

我有一个类 DummyClass,它使用构造函数在创建对象实例时存储一个值:

class DummyClass
{
    private $foo = '';

    function __construct($foobar)
    {
        $this->foo = $foobar;
    }

    public function getFoo() { return $foo; }
}

然后我有一个测试类DummyTest,它使用setUp() 来构造一个DummyClass 的实例。然后,在 test__construct() 中,它断言它自己的属性 $foo 和从 DummyClass 实例返回的变量相等:

require_once 'DummyClass.php';

class DummyTest extends PHPUnit_Framework_TestCase
{
    public $instance = NULL;
    public $foo;

    public function setUp()
    {
        $foo = 'bar';
        $this->instance = new DummyClass($foo);
    }

    public function test__construct()
    {
        $foobar = $instance->getFoo();
        $this->assertEquals($foobar, $foo);
    }

}

但是,当我在 phpunit 中运行测试时,出现错误:

致命错误:在第 16 行的 C:\wamp\www\DummyTest.php 中的非对象上调用成员函数 getFoo()

为什么 $instance 不是 test__construct() 中的对象,我该如何解决这个问题?

4

1 回答 1

0

您可以使用 访问类的对象this。检查这个,

public function test__construct()
{
    //$foobar = $instance->getFoo(); 
    $foobar = $this->instance->getFoo(); 
    $this->assertEquals($foobar, $foo);
}
于 2013-03-01T12:21:21.537 回答