PHPUnit:从setUp()获取测试类和方法的名称?

时间:2012-10-03 07:47:31

标签: php phpunit

PHPUnit在运行特定测试之前运行测试类的setUp()方法。

我为测试类中的每个测试加载特定于测试的灯具,并且不希望明确地这样做。理想情况下,我希望在setUp()方法中自动处理此问题。

如果setUp()方法提供了测试类名称和测试方法名称,则可以这样做。

是否可以使用setUp()方法向我提供测试类和方法的名称?

2 个答案:

答案 0 :(得分:32)

实现此目标的最简单方法应该是在$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助手,并从测试用例中调用适当的助手。

答案 1 :(得分:3)

或者,如果您不想在编辑的答案中显示string(10)部分,您可以这样做:

protected function setUp()
{
    echo $this->getName() . "\n";
}