|
|
8 years ago | |
|---|---|---|
| .. | ||
| generator | 8 years ago | |
| hamcrest | 8 years ago | |
| tests | 8 years ago | |
| .coveralls.yml | 8 years ago | |
| .gitignore | 8 years ago | |
| .gush.yml | 8 years ago | |
| .travis.yml | 8 years ago | |
| CHANGES.txt | 8 years ago | |
| LICENSE.txt | 8 years ago | |
| README.md | 8 years ago | |
| TODO.txt | 8 years ago | |
| composer.json | 8 years ago | |
| composer.lock | 8 years ago | |
README.md
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.
** [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).
Usage
Hamcrest matchers are easy to use as:
Hamcrest_MatcherAssert::assertThat('a', Hamcrest_Matchers::equalToIgnoringCase('A'));


