Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

16 Commits

Repository files navigation

Create PHPUnit mocks with YML


Installation

composer require syntaxerro/ymock 0.1.x-dev

Configuration

bad_query_database_connection:
class: "\\PDO"disable_original_constructor: truemethods:
query: false

Testing

./run.sh

Overview

Classical method creating of mock
class CartServiceTest extends \PHPUnit_Framework_TestCase
{
// provider etc.publicfunctionaddProductTest($product, $expectations)
{
$cart = newCartService(
$this->createMockOfDatabase()
);
// some test and assertions
}
privatefunctioncreateMockOfDatabase()
{
$values = [0, 1, 2];
$statement = $this->getMockBuilder(\PDOStatement::class)
->disableOriginalConstructor()
->getMock();
$statement->method('fetchAll')->willReturn($values);
$pdo = $this->getMockBuilder(\PDO::class)
->disableOriginalConstructor()
->getMock();
$pdo->method('query')->willReturn($statement);
return$pdo;
}
}
Creating the same mock with the YMock
class CartServiceTest extends \PHPUnit_Framework_TestCase
{
// provider etc.publicfunctionaddProductTest($product, $expectations)
{
$ymock = new \SyntaxErro\YMock\YMock($this, './path/to/mocks.yml');
$mocks = $ymock->getMocks();
$cart = newCartService(
$mocks->get('valid_query_database_connection')
);
// some test and assertions
}
}
valid_query_database_connection:
class: "\\PDO"disable_original_constructor: truemethods:
query:
class: "\\PDOStatement"disable_original_constructor: truemethods:
fetchAll: [0, 1, 2]

Features
  • Creating mocks suite per test in one YAML file
  • Easy creating chains of mocks
  • Configuring returned values (supported arrays, objects and simple types)

About

Mock like a champion

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages