如何访问在另一个PHPUnit测试中初始化的对象
作者:互联网
我有以下代码:
public function testFoo() {
$this->object = newBar();
}
但是稍后,例如,在方法testAdd()中,$this-> object为null. testAdd在testFoo之后执行.
为什么会发生这种情况,并且整个测试用例都有类似setUp的方法?
解决方法:
每个测试方法都在测试用例类的新实例上执行.实际上,在每次测试之前都会有一个设置方法,称为setUp
.
public function setUp() {
$this->object = newBar();
}
public function testFoo() {
// use $this->object here
}
public function testBar() {
// use $this->object here too, though it's a *different* instance of newBar
}
如果您需要在一个测试用例的所有测试之间共享状态(通常是不明智的做法),则可以使用静态setUpBeforeClass方法.
public static function setUpBeforeClass() {
self::$object = newBar();
}
public function testFoo() {
// use self::$object here
}
public function testBar() {
// use self::$object here too, same instance as above
}
标签:phpunit,php 来源: https://codeday.me/bug/20191201/2078080.html