2
我想測試一個調用exec()
的php函數,那麼最好的方法是什麼?我用它來獲得的git describe
結果:爲對象執行exec創建測試()
class Version
{
public function getVersionString()
{
$result = exec('git describe --always');
if (false !== strpos($result, 'fatal')) {
throw new RuntimeException(sprintf(
'Git describe returns error: %s',
$result
));
}
return $result;
}
}
所以我想如果執行命令來測試,並在發生錯誤時,拋出異常(即「預期」的行爲和「例外」的行爲)。
class VersionTest extends PHPUnit_Framework_TestCase
{
public function testVersionResultsString()
{
$version = new Version();
$result = $version->getVersionString();
$this->assertEquals('...', $result);
}
public function testVersionResultHasFatalErrorThrowsException()
{
// trigger something that will cause the fatal
$this->setExpectedException('RuntimeException');
$version = new Version();
$result = $version->getVersionString();
}
}
過程中的類和測試的是真正比較複雜一點,但本質是捕捉exec()
地方。任何想法如何?