编程语言
首页 > 编程语言> > 如何访问在另一个PHPUnit测试中初始化的对象

如何访问在另一个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