8000 GitHub - bkrukowski/test-uopz
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

bkrukowski/test-uopz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PfUopz

Mock final classes and methods in PHP.

Usage

PHPUnit

Extend PfUopz\PHPUnitBridge instead of PHPUnit\Framework\TestCase class.

Mockery

Use PfUopz\MockeryBridge instead of Mockery class.

Frameworkless

  • function PfUopz\unfinal_class($className) - mark class as not final
  • function PfUopz\unfinal_method($className, $methodName) - mark method as not final
  • function PfUopz\unfinal_all($className) - mark class and all methods as not final

Example

<?php

use PfUopz\PHPUnitBridge;

final class MyFinalClass {
    public function sayHello(): string
    {
        return 'hello';
    }
}

final class MyTest extends PHPUnitBridge
{
    public function testFinalClass()
    {
        $mock = $this->getMockBuilder(MyFinalClass::class)->getMock();
        
        $mock
            ->expects($this->once())
            ->method('sayHello')
            ->willReturn('goodbye');

        $this->assertSame('goodbye', $mock->sayHello());
    }
}

External links

The simplest solution is to not mark classes or methods as final!

dock.mockery.io

Please note that final (...) methods cannot be stubbed or mocked.

phpunit docs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0