vielhuber / comparehelper
small php helper for comparing api responses in your tests.
Installs: 402
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/vielhuber/comparehelper
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: >=6.5
README
📑 comparehelper 📑
comparehelper is a small php helper for comparing api responses in your tests.
installation
install once with composer:
composer require vielhuber/comparehelper
then add this to your files:
require __DIR__ . '/vendor/autoload.php'; use vielhuber\comparehelper\comparehelper;
usage
CompareHelper::compare($var1, $var2); // true|false
you can use the following placeholders:
*: any datatype#STR#: any string#INT#: any numeric value
examples
CompareHelper::compare('foo', 'foo'); // true CompareHelper::compare(42, 42); // true CompareHelper::compare( [ 'foo' => 'bar' ], [ 'foo' => 'bar', 'foo2' => 'bar' ] ); // false CompareHelper::compare( [ 'foo' => 'bar', 'bar' => ['baz', 42] ], [ '#STR' => '*', 'bar' => ['#STR#', '#INT#'] ] ); // true // ordering is lazy CompareHelper::compare(['foo', 'bar'], ['bar', 'foo']); // true CompareHelper::compare(['#INT#', '#STR#'], [42, 'foo']); // true CompareHelper::compare(['#INT#', '#STR#'], ['foo', 42]); // false CompareHelper::compare(['foo' => 7, 'bar' => 42], ['bar' => 42, 'foo' => 7]); // true CompareHelper::compare(['#INT#' => 7, '#STR#' => 42], [7 => 7, 'foo' => 42]); // true CompareHelper::compare(['#INT#' => 7, '#STR#' => 42], ['foo' => 42, 7 => 7]); // false // datatypes are strict CompareHelper::compare(42, '42'); // false
phpunit integration
for better diff output in tests, use assertEquals() instead of compare():
// instead of: $this->assertTrue(CompareHelper::compare($expected, $actual)); // use this for better diffs: CompareHelper::assertEquals($expected, $actual); // example: CompareHelper::assertEquals(['id' => '#INT#', 'name' => '#STR#', 'status' => 'active'], $apiResponse);