PHPUnit 在setUp()
运行特定测试之前运行测试类的方法。
我为测试类中的每个测试加载了特定于测试的固定装置,并且不希望显式地这样做。理想情况下,我希望在该setUp()
方法中自动处理此问题。
如果setUp()
方法使测试类名称和测试方法名称可用,则可以这样做。
我可以在方法中使用即将运行的测试类和方法的名称setUp()
吗?
实现这一点的最简单方法应该是调用$this->getName()
.setUp()
<?php
class MyTest extends PHPUnit_Framework_TestCase
{
public function setUp() {
var_dump($this->getName());
}
public function testMethod()
{
$this->assertEquals(4,2+2,'OK1');
}
}
并运行:
phpunit MyTest.php
产生:
PHPUnit 3.7.1 by Sebastian Bergmann.
.string(10) "testMethod"
Time: 0 seconds, Memory: 5.00Mb
OK (1 test, 1 assertion)
一般来说,我建议不要这样做,但在某些情况下,它确实是一种很好的做事方式。
其他选择是拥有多个测试类,并将所有使用相同夹具的测试放在一个类中。
另一种方法是拥有私有的 setUp 助手并从测试用例中调用适当的助手。
或者,如果您不想string(10)
在 edorian 的答案中显示部分,您可以这样做:
protected function setUp()
{
echo $this->getName() . "\n";
}