PHPUnit自作アサーション/HTMLを解析するテスト3 動線の存在のテスト、negate, composition
- 動線の存在のアサート
phpunit_constraints/HtmlAssertions.php at master · wand2016/phpunit_constraints · GitHub
- 否定形のアサート
phpunit_constraints/HtmlAssertions.php at master · wand2016/phpunit_constraints · GitHub
モチベーション
学び
- 「存在」のアサートを生やすと、「存在しない」のアサートも生やしたくなるのが人情というもの
- PHPUnitでは、Constraintの否定・合成を行うことができる
<?php ... /** * Asserts that two variables are not equal. * * @param mixed $expected * @param mixed $actual * @param string $message * @param float $delta * @param int $maxDepth * @param bool $canonicalize * @param bool $ignoreCase */ public static function assertNotEquals($expected, $actual, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false) { $constraint = new LogicalNot( new IsEqual( $expected, $delta, $maxDepth, $canonicalize, $ignoreCase ) ); static::assertThat($actual, $constraint, $message); }
<?php ... public static function lessThan($value): LessThan { return new LessThan($value); } public static function lessThanOrEqual($value): LogicalOr { return static::logicalOr( new IsEqual($value), new LessThan($value) ); }