$expectation = new Expectation($example); $expectation->expect(1)->toBeAnExampleOf('a number'); $messages = $expectation->message(); expect($messages[0])->toBe("Expected 1 to be an example of 'a number'"); expect($messages[1])->toBe("Expected 1 not to be an example of 'a number'"); }); it('supports overriding default', function () { $example = ['toHaveCustomMessage' => function () { $this->message = function () { return ['regular message', 'inverted message']; }; return false; }]; $expectation = new Expectation($example); $expectation->expect()->toHaveCustomMessage(); $messages = $expectation->message(); expect($messages[0])->toBe('regular message'); expect($messages[1])->toBe('inverted message'); }); }); it('can be inverted', function () { $example = ['toPass' => function () { return true; }, 'toFail' => function () { return false; }]; $do = new Expectation($example); expect($do->expect()->not->toPass())->toBe(false); expect($do->expect()->not->toFail())->toBe(true); }); describe('pretty-prints', function () {
<?php use Physalis\Spec; use Physalis\Expectation; describe('toBeOfType', function () { $do; beforeEach(function () use(&$do) { global $coreMatchers; $do = new Expectation($coreMatchers); }); it('knows about strings', function () use(&$do) { expect($do->expect('a string')->toBeOfType('string'))->toBe(true); $messages = $do->message(); expect($messages[0])->toBe("Expected 'a string' to be of type <string>"); expect($messages[1])->toBe("Expected 'a string' not to be of type <string>"); }); it('knows about integers', function () use(&$do) { expect($do->expect(123)->toBeOfType('integer'))->toBe(true); $messages = $do->message(); expect($messages[0])->toBe("Expected 123 to be of type <integer>"); expect($messages[1])->toBe("Expected 123 not to be of type <integer>"); }); it('knows about doubles', function () use(&$do) { expect($do->expect(4.56)->toBeOfType('double'))->toBe(true); $messages = $do->message(); expect($messages[0])->toBe("Expected 4.56 to be of type <double>"); expect($messages[1])->toBe("Expected 4.56 not to be of type <double>"); }); it('knows about arrays', function () use(&$do) { expect($do->expect([7, 8, 9])->toBeOfType('array'))->toBe(true); $messages = $do->message();