Ответ 1
Вы устанавливаете свойство foo внутри метода testFirst()
. PHPUnit будет reset средой между тестами/создаст новый экземпляр "NewTest" для каждого тестового метода, если у них нет аннотации @depends), поэтому, если вы хотите, чтобы foo
установлен на true
, у вас есть воссоздать это состояние в зависимом тесте или использовать метод setup()
.
С setup()
(docs):
class NewTest extends PHPUnit_Framework_TestCase
{
protected $foo;
protected function setup()
{
$this->foo = TRUE;
}
function testFirst ()
{
$this->assertTrue($this->foo);
}
/**
* @depends testFirst
*/
function testSecond ()
{
$this->assertTrue($this->foo);
}
}
С @depends
(docs):
class NewTest extends PHPUnit_Framework_TestCase
{
protected $foo;
function testFirst ()
{
$this->foo = TRUE;
$this->assertTrue($this->foo);
return $this->foo;
}
/**
* @depends testFirst
*/
function testSecond($foo)
{
$this->foo = $foo;
$this->assertTrue($this->foo);
}
}
Все вышеперечисленное должно пройти.
EDIT пришлось удалить решение @backupGlobals. Это было неправильно.