我想测试一个 php 函数调用exec()
,最好的方法是什么?我用它来得到结果git describe
:
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()
某处。知道怎么做吗?