Skip to content

Instantly share code, notes, and snippets.

@loonies
Last active August 30, 2025 20:18
Show Gist options
  • Save loonies/1255249 to your computer and use it in GitHub Desktop.
Save loonies/1255249 to your computer and use it in GitHub Desktop.
PHPUnit Cheat Sheet

PHPUnit API

  • version 3.6+

PHPUnit_Framework_Assert


Assertions

String

  • assertRegExp
  • assertNotRegExp
  • assertStringMatchesFormat
  • assertStringNotMatchesFormat
  • assertStringStartsWith
  • assertStringStartsNotWith
  • assertStringEndsWith
  • assertStringEndsNotWith

Array primitive

  • assertArrayHasKey
  • assertArrayNotHasKey
  • assertContains
  • assertNotContains
  • assertContainsOnly
  • assertNotContainsOnly
  • assertCount
  • assertNotCount
  • assertSameSize
  • assertNotSameSize

Array class attribute

  • assertAttributeContains
  • assertAttributeNotContains
  • assertAttributeContainsOnly
  • assertAttributeNotContainsOnly
  • assertAttributeCount
  • assertAttributeNotCount

Variable primitive

  • assertTrue
  • assertFalse
  • assertNotNull
  • assertNull
  • assertSame
  • assertNotSame
  • assertEquals
  • assertNotEquals
  • assertEmpty
  • assertNotEmpty
  • assertGreaterThan
  • assertGreaterThanOrEqual
  • assertLessThan
  • assertLessThanOrEqual
  • assertInstanceOf
  • assertNotInstanceOf
  • assertInternalType
  • assertNotInternalType

Variable class attribute

  • assertAttributeSame
  • assertAttributeNotSame
  • assertAttributeEquals
  • assertAttributeNotEquals
  • assertAttributeEmpty
  • assertAttributeNotEmpty
  • assertAttributeGreaterThan
  • assertAttributeGreaterThanOrEqual
  • assertAttributeLessThan
  • assertAttributeLessThanOrEqual
  • assertAttributeInstanceOf
  • assertAttributeNotInstanceOf
  • assertAttributeInternalType
  • assertAttributeNotInternalType

Class structure

  • assertClassHasAttribute
  • assertClassNotHasAttribute
  • assertClassHasStaticAttribute
  • assertClassNotHasStaticAttribute
  • assertObjectHasAttribute
  • assertObjectNotHasAttribute

File

  • assertFileEquals
  • assertFileNotEquals
  • assertStringEqualsFile
  • assertStringNotEqualsFile
  • assertFileExists
  • assertFileNotExists

Xml

  • assertXmlFileEqualsXmlFile
  • assertXmlFileNotEqualsXmlFile
  • assertXmlStringEqualsXmlFile
  • assertXmlStringNotEqualsXmlFile
  • assertXmlStringEqualsXmlString
  • assertXmlStringNotEqualsXmlString
  • assertEqualXMLStructure

Other

  • assertStringMatchesFormatFile
  • assertStringNotMatchesFormatFile
  • assertSelectCount
  • assertSelectRegExp
  • assertSelectEquals
  • assertTag
  • assertNotTag
  • assertThat

PHPUnit_Framework_TestCase


Mockers

Code: $this->mocker()

getMock()

Returns a mock object for the specified class.

  • param: ...
  • return: PHPUnit_Framework_MockObject_MockObject

PHPUnit_Framework_MockObject_MockObject getMock(string $originalClassName [, mixed $methods = array() [, array $arguments = array() [, string $mockClassName = '' [, bool $callOriginalConstructor = TRUE [, bool $callOriginalClone = TRUE [, bool $callAutoload = TRUE]]]]]])

getMockForAbstractClass()

Returns a mock object for the specified abstract class with all abstract methods of the class mocked. Concrete methods to mock can be specified with the last parameter.

  • param: ...
  • return: PHPUnit_Framework_MockObject_MockObject

PHPUnit_Framework_MockObject_MockObject getMockForAbstractClass(string $originalClassName [, array $arguments = array() [, string $mockClassName = '' [, bool $callOriginalConstructor = TRUE [, bool $callOriginalClone = TRUE [, bool $callAutoload = TRUE [, array $mockedMethods = array()]]]]]])

getMockBuilder()

Returns a builder object to create mock objects using a fluent interface.

  • param: string
  • return: PHPUnit_Framework_MockObject_MockBuilder

PHPUnit_Framework_MockObject_MockBuilder getMockBuilder(string $className)


Matchers

Code: $mock->expects($this->matcher())

any()

Returns a matcher that matches when the method it is evaluated for is executed zero or more times.

  • return: PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount

PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount any()

never()

Returns a matcher that matches when the method it is evaluated for is never executed.

  • return: PHPUnit_Framework_MockObject_Matcher_InvokedCount

PHPUnit_Framework_MockObject_Matcher_InvokedCount never()

atLeastOnce()

Returns a matcher that matches when the method it is evaluated for is executed at least once.

  • return: PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce

PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce atLeastOnce()

once()

Returns a matcher that matches when the method it is evaluated for is executed exactly once.

  • return: PHPUnit_Framework_MockObject_Matcher_InvokedCount

PHPUnit_Framework_MockObject_Matcher_InvokedCount once()

exactly()

Returns a matcher that matches when the method it is evaluated for is executed exactly once.

  • param: int
  • return: PHPUnit_Framework_MockObject_Matcher_InvokedCount

PHPUnit_Framework_MockObject_Matcher_InvokedCount exactly(int $count)

at()

Returns a matcher that matches when the method it is evaluated for is invoked at the given $index.

  • param: int
  • return: PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex

PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex at(int $index)


Stubs

Code: $mock->will($this->stub())

returnValue()

Desc.

PHPUnit_Framework_MockObject_Stub_Return returnValue(mixed $value)

returnValueMap()

Desc.

PHPUnit_Framework_MockObject_Stub_ReturnValue MapreturnValueMap(array $valueMap)

returnArgument()

PHPUnit_Framework_MockObject_Stub_ReturnArgument returnArgument(int $argumentIndex)

returnCallback()

Desc.

PHPUnit_Framework_MockObject_Stub_ReturnCallback returnCallback(mixed $callback)

returnSelf()

Returns the current object.

PHPUnit_Framework_MockObject_Stub_ReturnSelf returnSelf()

throwException()

Desc.

PHPUnit_Framework_MockObject_Stub_Exception throwException(Exception $exception)

onConsecutiveCalls()

Desc.

PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls onConsecutiveCalls(mixed ... [, mixed ...])

PHPUnit_Framework_MockObject_MockBuilder

setMethods()

Specify the methods that are to be replaced with a configurable test double. The behavior of the other methods is not changed.

  • param: array|NULL
  • return: PHPUnit_Framework_MockObject_MockBuilder

PHPUnit_Framework_MockObject_MockBuilder setMethods(mixed $methods)

setConstructorArgs()

Specifies the arguments for the constructor.

  • param: array
  • return: PHPUnit_Framework_MockObject_MockBuilder

PHPUnit_Framework_MockObject_MockBuilder setConstructorArgs(array $args)

setMockClassName()

Specifies the name for the mock class.

  • param: string
  • return: PHPUnit_Framework_MockObject_MockBuilder

PHPUnit_Framework_MockObject_MockBuilder setMockClassName(string $name)

disableOriginalConstructor()

Suppresses the invocation of the original constructor.

  • return: PHPUnit_Framework_MockObject_MockBuilder

PHPUnit_Framework_MockObject_MockBuilder disableOriginalConstructor()

disableOriginalClone()

Suppresses the invocation of the original clone constructor.

  • return: PHPUnit_Framework_MockObject_MockBuilder

PHPUnit_Framework_MockObject_MockBuilder disableOriginalClone()

disableAutoload()

Suppresses the use of class autoloading while creating the mock object.

  • return: PHPUnit_Framework_MockObject_MockBuilder

PHPUnit_Framework_MockObject_MockBuilder disableAutoload()

getMock()

Creates a mock object using a fluent interface.

  • return: PHPUnit_Framework_MockObject_MockObject

PHPUnit_Framework_MockObject_MockObject getMock()

getMockForAbstractClass()

Creates a mock object for an abstract class using a fluent interface.

  • return: PHPUnit_Framework_MockObject_MockObject

PHPUnit_Framework_MockObject_MockObject getMockForAbstractClass()

PHPUnit_Framework_MockObject_MockObject

expects()

PHPUnit_Framework_MockObject_Matcher_Invocation

...

@howtomakeaturn
Copy link

good job :DDD

@TheWass
Copy link

TheWass commented May 6, 2015

FYI: "The UNIT in unit testing" link is broken.
Update: Link fixed

@loonies
Copy link
Author

loonies commented May 11, 2015

This Gist needs some serious update... Although it's nice to have PHPUnit methods grouped like here, PHPUnit got much better documentation, type hinting, and DocBlok comments in the recent releases.

Update: Fixed link

@technimad
Copy link

Thanks for tis usefull 'missing manual' information.

@erkstruwe
Copy link

The description for exactly() is incorrect. It should include the exact amount of executions instead of "once".

@loonies
Copy link
Author

loonies commented Jul 5, 2016

Fixed. Thanks

@Azhovan
Copy link

Azhovan commented Dec 3, 2017

good job man

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment