【发布时间】:2021-06-16 16:44:11
【问题描述】:
我是在 PHP 中模拟的新手,我似乎误解了一些东西,因为我无法让基础工作:
class Klass
{
public function a(): string
{
return 'a';
}
}
class MockTest extends \PHPUnit\Framework\TestCase
{
function testA(): void
{
$klass = new Klass();
$this->assertEquals('a', $klass->a());
}
function testMockA()
{
$mock = $this->getMockBuilder(Klass::class)->getMock();
$mock->method('a')->willReturn('foo');
$klass = new Klass();
$this->assertSame('foo', $klass->a());
}
}
测试 testMockA 失败,因为 $klass->a() 仍然返回 'a'。模拟似乎什么都不做?
我以PHPUnit Mocking functions which use Database Connection 为基础,我使用了TaskTest.php 上的内容:这就是我最终想要的,模拟我的数据库类以不执行实际查询,但我无法让它工作。
【问题讨论】: