feat(expectations): add toMatchConstraint

This commit is contained in:
Owen Voke
2020-09-16 19:02:33 +01:00
parent 5b083e4eb1
commit 76d0f9cfc1
2 changed files with 27 additions and 0 deletions

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Pest;
use PHPUnit\Framework\Assert;
use PHPUnit\Framework\Constraint\Constraint;
/**
* @internal
@ -504,6 +505,16 @@ final class Expectation
return $this;
}
/**
* Asserts that the value matches a constraint.
*/
public function toMatchConstraint(Constraint $constraint): Expectation
{
Assert::assertThat($this->value, $constraint);
return $this;
}
/**
* Dynamically calls methods on the class without any arguments.
*

View File

@ -0,0 +1,16 @@
<?php
use PHPUnit\Framework\Constraint\IsTrue;
use PHPUnit\Framework\ExpectationFailedException;
test('pass', function () {
expect(true)->toMatchConstraint(new IsTrue());
});
test('failures', function () {
expect(false)->toMatchConstraint(new IsTrue());
})->throws(ExpectationFailedException::class);
test('not failures', function () {
expect(true)->not->toMatchConstraint(new IsTrue());
})->throws(ExpectationFailedException::class);