PHPUnit在運行特定測試之前運行測試類的setUp()
方法。PHPUnit:從setUp()獲取測試類和方法的名稱?
我爲測試類中的每個測試加載測試特定的燈具,並且不希望明確地這樣做。我最好喜歡在setUp()
方法中自動處理這個問題。
如果setUp()
方法提供測試類名稱和測試方法名稱,可以這樣做。
是否在setUp()
方法中可用於我的測試類和方法的名稱?
PHPUnit在運行特定測試之前運行測試類的setUp()
方法。PHPUnit:從setUp()獲取測試類和方法的名稱?
我爲測試類中的每個測試加載測試特定的燈具,並且不希望明確地這樣做。我最好喜歡在setUp()
方法中自動處理這個問題。
如果setUp()
方法提供測試類名稱和測試方法名稱,可以這樣做。
是否在setUp()
方法中可用於我的測試類和方法的名稱?
實現此目的的最簡單方法應該在setUp()
中調用$this->getName()
。
<?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助手並從測試用例中調用相應的助手。
或者,如果你不想在edorian的答案顯示string(10)
部分一樣可以做這樣的:
protected function setUp()
{
echo $this->getName() . "\n";
}
@喬恩 - 補習班,以獲得當前測試類的名稱,'PHPUnit'本身使用[get_class($ this)](http://php.net/manual/en/function.get-class.php)來獲取類名,包括命名空間部分 – xmojmr