awesomite / mock-finals
模拟最终类和方法
v1.0.1
2020-07-25 16:48 UTC
Requires
- php: ^7.1
- ext-uopz: *
Requires (Dev)
- phpunit/phpunit: ^7.5 || ^8.5 || ^9.2
This package is auto-updated.
Last update: 2024-08-26 02:18:15 UTC
README
Mock Finals
在测试中模拟最终类和方法。该库覆盖现有的类加载器,并使用 uopz_flags
移除运行时中的所有 final
出现。
安装
composer require --dev awesomite/mock-finals
要求
- PHP ^7.1
- uopz (
pecl install uopz
)
使用案例
通常来说,这样做是不好的实践。然而,当你必须处理遗留代码或第三方库时,它可能会有所帮助。请阅读以下文章,了解如何正确处理代码中的 final
关键字。
示例
class Greeter { final public function sayHello(): string { return 'hello'; } } class MyTest extends \PHPUnit\Framework\TestCase { public function testSayHello(): void { $mock = $this->getMockBuilder(Greeter::class)->getMock(); $mock ->expects($this->once()) ->method('sayHello') ->willReturn('goodbye') ; $this->assertSame('goodbye', $mock->sayHello()); } }