Cha*_*han 5 php phpunit unit-testing mockery
<?php
class Target
{
public function validate()
{
$this->getData();
return true;
}
public function getData()
{
return array();
}
}
Run Code Online (Sandbox Code Playgroud)
<?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);
}
}
Run Code Online (Sandbox Code Playgroud)
Mockery\Exception\InvalidCountException: Method getData() from Mockery_1_ExpWarning should be called
exactly 1 times but called 0 times.
我使用Mockery作为模拟工具,示例总是关于如何模拟DI,我想知道我可以模拟内部方法吗?
您可以使用测试框架的部分模拟功能仅模拟getData方法并描述期望。
作为(工作)示例:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
希望这有帮助
| 归档时间: |
|
| 查看次数: |
3860 次 |
| 最近记录: |