为什么我可以在函数中定义类AdRequest
的新实例,如下所示:
require_once 'adRequest.php';
class adRequestTest extends PHPUnit_Framework_TestCase{
public $fixture;
function testGetHash_returnsCorrectValue(){
$fixture = new AdRequest();
$fixture->site = "dummy.com";
}
}
但是当我尝试像这样创建这个实例时:
require_once 'adRequest.php';
class adRequestTest extends PHPUnit_Framework_TestCase{
public $fixture;
$fixture = new AdRequest();
function testGetHash_returnsCorrectValue(){
$fixture->site = "dummy.com";
}
}
我收到了这个错误:
PHP Parse错误:语法错误,意外'$ fixture'(T_VARIABLE), 期待功能(T_FUNCTION)
答案 0 :(得分:1)
如果你想创建一次实例并在每个函数中使用它,使用setUp()
,在每个testXxx()方法之前调用setUp()
<?php
require_once 'adRequest.php';
class adRequestTest extends PHPUnit_Framework_TestCase{
public $fixture;
public function setUp() {
$this->fixture = new AdRequest();
}
function testGetHash_returnsCorrectValue(){
$this->fixture->site = "dummy.com";
}
答案 1 :(得分:0)
无论你在类的声明和方法之间放置什么,都必须是特定类的属性,而不是代码。
在你的情况下,你应该把:
require_once 'adRequest.php';
class adRequestTest extends PHPUnit_Framework_TestCase{
public $fixture = new AdRequest();
function testGetHash_returnsCorrectValue(){
$fixture->site = "dummy.com";
}
}
答案 2 :(得分:0)
类定义可能只包含成员声明 - 方法,实例变量,常量等。它们可能不像函数体那样包含任意代码。