This package adds several convenience methods to your Laravel collections to make assertions against them more fluent and readable.
You'll have to follow a couple of simple steps to install this package.
Via composer:
$ composer require sven/laravel-collection-testing-helpers --dev
Or add the package to your development dependencies in composer.json
and run
composer update
on the command line to download the package:
{
"require-dev": {
"sven/laravel-collection-testing-helpers": "^1.0"
}
}
To use this package in your tests, you must first call the \Sven\LaravelCollectionTestingHelpers\Helpers::enable()
method where you want to use the assertions. You may then use the methods directly on your collections:
<?php
use Sven\LaravelCollectionTestingHelpers\Helpers;
use Illuminate\Foundation\Testing\TestCase;
class ExampleTest extends TestCase
{
public function test_collections()
{
Helpers::enable();
collect(['apple', 'pear', 'banana'])
->assertContains('apple')
->assertNotContains('orange');
}
public function test_callable_filtering()
{
Helpers::enable();
collect(['apple', 'pear', 'banana'])
->assertContains(fn ($fruit) => $fruit === 'pear')
->assertNotContains(fn ($fruit) => $fruit === 'kiwi');
}
public function test_keyed_collections()
{
Helpers::enable();
collect([['name' => 'apple'], ['name' => 'pear'], ['name' => 'banana']])
->assertContains('name', 'apple')
->assertNotContains('name', 'grape');
}
}
Big thanks to @eduarguz for his original work on this
in the now-abandoned sven/laravel-testing-utils
package.
All contributions (pull requests, issues and feature requests) are welcome. Make sure to read through the CONTRIBUTING.md first, though. See the contributors page for all contributors.
sven/laravel-collection-testing-helpers
is licensed under the MIT License (MIT).
Please see the license file for more information.