当我们包含自定义lib函数时,Phpmock不起作用。我在这里附上了示例代码。 getFirstName()函数返回" Steven",当它调用表单getName函数时。
phpmock \测试\ indexTest.php
<?php
namespace testing;
require_once(TEST_ROOT_DIR.'/vendor/autoload.php');
$cwDir = dirname(__FILE__);
$requireFile = str_replace('\test','',$cwDir).'\index.php';
require_once($requireFile);
use PHPUnit\Framework\TestCase;
use phpmock\MockBuilder;
use phpmock\functions\FixedValueFunction;
class indexText extends TestCase {
public function testGetName(){
$lo_builder = new MockBuilder();
$lo_builder->setNamespace(__NAMESPACE__)
->setName("getFirstName")
->setFunctionProvider(new FixedValueFunction('Lee'));
$lo_mock = $lo_builder->build();
$lo_mock->enable();
var_dump(getFirstName());
$result = getName();
$this->assertEquals('Lee mark',$result);
$lo_mock->disable();
}
}
phpmock / index.php的
<?php
require_once('inc/lib.php');
function getName(){
return getFirstName().' '.getLastName();
}
?>
phpmock / INC / lib.php
<?php
function getFirstName(){
return 'Steven';
}
function getLastName(){
return 'mark';
}
?>