如何嘲笑内部方法 Target.php
您可以仅使用测试框架的方法模拟如何嘲笑内部方法 Target.php,php,unit-testing,phpunit,mockery,Php,Unit Testing,Phpunit,Mockery,您可以仅使用测试框架的方法模拟getData方法,并描述期望值 作为(工作)示例: 希望这些帮助您的目标班级有点困惑。EXP警告是目标类的真实类名吗?谁是他的$this->exp对象?为什么不呢?请解释清楚 <?php class Target { public function validate() { $this->getData(); return true; } public function getData
getData
方法,并描述期望值
作为(工作)示例:
希望这些帮助您的目标班级有点困惑。EXP警告是目标类的真实类名吗?谁是他的$this->exp对象?为什么不呢?请解释清楚
<?php
class Target
{
public function validate()
{
$this->getData();
return true;
}
public function getData()
{
return array();
}
}
<?php
class TargetTest extends PHPUnit_Framework_TestCase
{
public function testValidate()
{
$mock = m::mock('Target');
$mock->shouldReceive('getData')
->once();
$expected = $this->exp->validate();
$this->assertTrue($expected);
}
}
use Mockery as m;
class TargetTest extends \PHPUnit_Framework_TestCase
{
public function testValidate()
{
$mock = m::mock('Target[getData]');
$mock->shouldReceive('getData')
->once();
$expected = $mock->validate();
$this->assertTrue($expected);
}
}