【发布时间】:2018-11-04 23:38:26
【问题描述】:
我正在模拟一个类来测试它的方法,但是我无法设置所需的返回值。 这是我所做的
<?php
namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
use Lopo\Payment;
class PaymentTest extends TestCase
{
public $stub;
public function setUp()
{
$this->stub = $this->createMock(Payment::class);
}
public function testProceedPaymentMethod()
{
$this->stub->expects($this->any())->method('proceed')
->will($this->returnValue('fooo'));
var_dump($this->stub->proceed(10)); // not returning fooo
}
}
我试过没有设置方法
我尝试使用createMock、getMockBuilder(),但总是得到NULL,而不是指定的返回值。
我该如何解决这个问题?
【问题讨论】:
-
能贴出模拟类的代码吗?
-
你用的是什么版本的phpunit?我无法复制这个 - 你发布的代码对我来说看起来不错(尽管它需要稍微复杂一些 - 请参阅塞巴斯蒂安的回答)。
-
我使用的是版本 7
-
检查方法是否声明为私有