Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
SetTest.php | 2017-07-31 | 3.2 kB | |
SampleBaseClass.php | 2017-07-31 | 231 Bytes | |
SampleSubClass.php | 2017-07-31 | 96 Bytes | |
IsTest.php | 2017-07-31 | 1.1 kB | |
IsTypeOfTest.php | 2017-07-31 | 1.5 kB | |
IsNullTest.php | 2017-07-31 | 484 Bytes | |
IsSameTest.php | 2017-07-31 | 795 Bytes | |
IsInstanceOfTest.php | 2017-07-31 | 1.8 kB | |
IsNotTest.php | 2017-07-31 | 998 Bytes | |
IsEqualTest.php | 2017-07-31 | 2.8 kB | |
IsIdenticalTest.php | 2017-07-31 | 769 Bytes | |
IsAnythingTest.php | 2017-07-31 | 684 Bytes | |
IsCollectionContainingTest.php | 2017-07-31 | 2.6 kB | |
EveryTest.php | 2017-07-31 | 834 Bytes | |
HasToStringTest.php | 2017-07-31 | 2.4 kB | |
CombinableMatcherTest.php | 2017-07-31 | 1.8 kB | |
DescribedAsTest.php | 2017-07-31 | 1.1 kB | |
AllOfTest.php | 2017-07-31 | 1.6 kB | |
AnyOfTest.php | 2017-07-31 | 2.5 kB | |
Totals: 19 Items | 27.1 kB | 0 |
This is the PHP port of Hamcrest Matchers
Hamcrest is a matching library originally written for Java, but subsequently ported to many other languages. hamcrest-php is the official PHP port of Hamcrest and essentially follows a literal translation of the original Java API for Hamcrest, with a few Exceptions, mostly down to PHP language barriers:
-
instanceOf($theClass)
is actuallyanInstanceOf($theClass)
-
both(containsString('a'))->and(containsString('b'))
is actuallyboth(containsString('a'))->andAlso(containsString('b'))
-
either(containsString('a'))->or(containsString('b'))
is actuallyeither(containsString('a'))->orElse(containsString('b'))
-
Unless it would be non-semantic for a matcher to do so, hamcrest-php allows dynamic typing for it's input, in "the PHP way". Exception are where semantics surrounding the type itself would suggest otherwise, such as stringContains() and greaterThan().
-
Several official matchers have not been ported because they don't make sense or don't apply in PHP:
typeCompatibleWith($theClass)
eventFrom($source)
hasProperty($name)
**samePropertyValuesAs($obj)
**
-
When most of the collections matchers are finally ported, PHP-specific aliases will probably be created due to a difference in naming conventions between Java's Arrays, Collections, Sets and Maps compared with PHP's Arrays.
Usage
Hamcrest matchers are easy to use as:
Hamcrest_MatcherAssert::assertThat('a', Hamcrest_Matchers::equalToIgnoringCase('A'));
** [Unless we consider POPO's (Plain Old PHP Objects) akin to JavaBeans] - The POPO thing is a joke. Java devs coin the term POJO's (Plain Old Java Objects).