Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
246 lines (214 sloc) 5.24 KB
cheatsheet do
title 'phpSpec'
docset_file_name 'phpSpec'
keyword 'phpspec'
source_url 'http://cheat.kapeli.com'
category do
id 'General'
entry do
name 'Object'
notes '
```
$result ($this)
```'
end
entry do
name 'Expectation'
notes '
```
should or shouldNot
```'
end
entry do
name 'Matcher'
notes '
```
Be...()
````'
end
end
category do
id 'Types of Matchers'
entry do
name 'Identity (**===**)'
notes <<-'END'
```php?start_inline=1
$this->method()->shouldReturn('something');
$this->method()->shouldBe('something');
$this->method()->shouldBeEqualTo('something');
$this->method()->shouldEqual('something');
```
END
end
entry do
name 'Comparison (**==**)'
notes <<-'END'
```php?start_inline=1
$this->method()->shouldBeLike('something');
```
END
end
entry do
name 'Throw'
notes <<-'END'
```php?start_inline=1
$this->shouldThrow('EndOfTheWorld')->duringGreet();
$this->shouldThrow('EndOfTheWorld')->during('greet');
$this->greet()->shouldThrow(new \Exception)->duringGreet();
$this->greet()->shouldThrow(new \Exception)->during('greet', ['arguments']);
```
END
end
entry do
name 'Type'
notes <<-'END'
```php?start_inline=1
$this->greet()->shouldBeAnInstanceOf('Greeting');
$this->greet()->returnAnInstanceOf('Greeting');
$this->greet()->haveType('Greeting');
```
END
end
entry do
name 'Object State'
notes <<-'END'
* has → have
```php?start_inline=1
class ShoppingCartSpec extends ObjectBehavior
{
function it_is_created_empty()
{
$this->shouldNotHaveItems();
}
}
class ShoppingCart
{
public function hasItem() {}
}
```
* is → be
```php?start_inline=1
class LifeSpec extends ObjectBehavior
{
function it_is_simple()
{
$this->shouldBeSimple();
}
}
class Life
{
public function isSimple() {}
}
```
END
end
entry do
name 'Inline'
notes <<-'END'
```php?start_inline=1
class NeoSpec extends ObjectBehavior
{
function it_should_be_the_one()
{
$this->shouldBeTheOne();
}
function getMatchers()
{
return [
'beTheOne' => function($actual)
{
return $actual instanceOf TheOne;
}
];
}
}
```
END
end
end
category do
id 'Let & Let Go'
entry do
notes <<-'END'
```php?start_inline=1
class SomeSpec extends ObjectBehavior
{
function let()
{
// run before every example
}
function it_greets_with_hello()
{
$this->greet()->shouldReturn('Hello, World!');
}
function let_go()
{
// run after every example
}
}
```
END
end
end
category do
id 'Constructors'
entry do
notes <<-'END'
```php?start_inline=1
//...
function let()
{
$this->beConstructedWith('Hello, World!');
}
```
END
end
end
category do
id 'Stubbing'
entry do
notes <<-'END'
```php?start_inline=1
class SomeSpec extends ObjectBehavior
{
function let(Greeting $greeting)
{
$this->beConstructedWith($greeting);
}
function it_greets_with_hello_world(Greeting $greeting)
{
$greeting->getMessage()->willReturn('Hello, World!');
$this->greet()->shouldReturn('Hello, World!');
}
}
```
END
end
end
category do
id 'Mocking'
entry do
notes <<-'END'
```php?start_inline=1
class SomeSpec extends ObjectBehavior
{
function let(Greeter $greeter)
{
$this->beConstructedWith($greeter);
}
function it_uses_a_greeter(Greeter $greeter)
{
$greeting->sayHelloWorld()->shouldBeCalled();
$this->greet();
}
}
```
END
end
end
notes <<-'END'
* Based on a [gist](https://gist.github.com/pedroborges/9176252) from [Pedro Borges](https://github.com/pedroborges)
* Inspired by [Marcello Duarte](https://github.com/MarcelloDuarte/)'s PhpSpec 2.0 ilustrated by [examples slides](http://pt.slideshare.net/marcello.duarte/phpspec-20-ilustrated-by-examples)
* Converted by [Jens Kohl](https://github.com/jk)
END
end