mirror of
https://github.com/pestphp/pest.git
synced 2026-03-12 02:37:22 +01:00
Merge branch 'master' into teamcity-styling
# Conflicts: # tests/.snapshots/success.txt
This commit is contained in:
2
.github/workflows/tests.yml
vendored
2
.github/workflows/tests.yml
vendored
@ -8,7 +8,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
php: ['7.3', '7.4', '8.0']
|
php: ['7.3', '7.4', '8.0', '8.1']
|
||||||
dependency-version: [prefer-lowest, prefer-stable]
|
dependency-version: [prefer-lowest, prefer-stable]
|
||||||
|
|
||||||
name: PHP ${{ matrix.php }} - ${{ matrix.os }} - ${{ matrix.dependency-version }}
|
name: PHP ${{ matrix.php }} - ${{ matrix.os }} - ${{ matrix.dependency-version }}
|
||||||
|
|||||||
@ -266,14 +266,16 @@ final class Expectation
|
|||||||
/**
|
/**
|
||||||
* Asserts that $needle is an element of the value.
|
* Asserts that $needle is an element of the value.
|
||||||
*
|
*
|
||||||
* @param mixed $needle
|
* @param mixed $needles
|
||||||
*/
|
*/
|
||||||
public function toContain($needle): Expectation
|
public function toContain(...$needles): Expectation
|
||||||
{
|
{
|
||||||
if (is_string($this->value)) {
|
foreach ($needles as $needle) {
|
||||||
Assert::assertStringContainsString($needle, $this->value);
|
if (is_string($this->value)) {
|
||||||
} else {
|
Assert::assertStringContainsString($needle, $this->value);
|
||||||
Assert::assertContains($needle, $this->value);
|
} else {
|
||||||
|
Assert::assertContains($needle, $this->value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
|
|||||||
@ -325,9 +325,16 @@
|
|||||||
|
|
||||||
PASS Tests\Features\Expect\toContain
|
PASS Tests\Features\Expect\toContain
|
||||||
✓ passes strings
|
✓ passes strings
|
||||||
|
✓ passes strings with multiple needles
|
||||||
✓ passes arrays
|
✓ passes arrays
|
||||||
|
✓ passes arrays with multiple needles
|
||||||
|
✓ passes with array needles
|
||||||
✓ failures
|
✓ failures
|
||||||
|
✓ failures with multiple needles (all failing)
|
||||||
|
✓ failures with multiple needles (some failing)
|
||||||
✓ not failures
|
✓ not failures
|
||||||
|
✓ not failures with multiple needles (all failing)
|
||||||
|
✓ not failures with multiple needles (some failing)
|
||||||
|
|
||||||
PASS Tests\Features\Expect\toEndWith
|
PASS Tests\Features\Expect\toEndWith
|
||||||
✓ pass
|
✓ pass
|
||||||
@ -578,9 +585,6 @@
|
|||||||
PASS Tests\Visual\Help
|
PASS Tests\Visual\Help
|
||||||
✓ visual snapshot of help command output
|
✓ visual snapshot of help command output
|
||||||
|
|
||||||
PASS Tests\Visual\JUnit
|
|
||||||
✓ it is can successfully call all public methods
|
|
||||||
|
|
||||||
PASS Tests\Visual\SingleTestOrDirectory
|
PASS Tests\Visual\SingleTestOrDirectory
|
||||||
✓ allows to run a single test
|
✓ allows to run a single test
|
||||||
✓ allows to run a directory
|
✓ allows to run a directory
|
||||||
@ -590,9 +594,6 @@
|
|||||||
WARN Tests\Visual\Success
|
WARN Tests\Visual\Success
|
||||||
- visual snapshot of test suite on success
|
- visual snapshot of test suite on success
|
||||||
|
|
||||||
PASS Tests\Visual\TeamCity
|
|
||||||
✓ it is can successfully call all public methods
|
|
||||||
|
|
||||||
PASS Tests\Features\Depends
|
PASS Tests\Features\Depends
|
||||||
✓ first
|
✓ first
|
||||||
✓ second
|
✓ second
|
||||||
@ -607,5 +608,5 @@
|
|||||||
✓ it is a test
|
✓ it is a test
|
||||||
✓ it uses correct parent class
|
✓ it uses correct parent class
|
||||||
|
|
||||||
Tests: 4 incompleted, 9 skipped, 383 passed
|
Tests: 4 incompleted, 9 skipped, 388 passed
|
||||||
|
|
||||||
@ -3,17 +3,45 @@
|
|||||||
use PHPUnit\Framework\ExpectationFailedException;
|
use PHPUnit\Framework\ExpectationFailedException;
|
||||||
|
|
||||||
test('passes strings', function () {
|
test('passes strings', function () {
|
||||||
expect([1, 2, 42])->toContain(42);
|
expect('Nuno')->toContain('Nu');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('passes strings with multiple needles', function () {
|
||||||
|
expect('Nuno')->toContain('Nu', 'no');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('passes arrays', function () {
|
test('passes arrays', function () {
|
||||||
expect('Nuno')->toContain('Nu');
|
expect([1, 2, 42])->toContain(42);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('passes arrays with multiple needles', function () {
|
||||||
|
expect([1, 2, 42])->toContain(42, 2);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('passes with array needles', function () {
|
||||||
|
expect([[1, 2, 3], 2, 42])->toContain(42, [1, 2, 3]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('failures', function () {
|
test('failures', function () {
|
||||||
expect([1, 2, 42])->toContain(3);
|
expect([1, 2, 42])->toContain(3);
|
||||||
})->throws(ExpectationFailedException::class);
|
})->throws(ExpectationFailedException::class);
|
||||||
|
|
||||||
|
test('failures with multiple needles (all failing)', function () {
|
||||||
|
expect([1, 2, 42])->toContain(3, 4);
|
||||||
|
})->throws(ExpectationFailedException::class);
|
||||||
|
|
||||||
|
test('failures with multiple needles (some failing)', function () {
|
||||||
|
expect([1, 2, 42])->toContain(1, 3, 4);
|
||||||
|
})->throws(ExpectationFailedException::class);
|
||||||
|
|
||||||
test('not failures', function () {
|
test('not failures', function () {
|
||||||
expect([1, 2, 42])->not->toContain(42);
|
expect([1, 2, 42])->not->toContain(42);
|
||||||
})->throws(ExpectationFailedException::class);
|
})->throws(ExpectationFailedException::class);
|
||||||
|
|
||||||
|
test('not failures with multiple needles (all failing)', function () {
|
||||||
|
expect([1, 2, 42])->not->toContain(42, 2);
|
||||||
|
})->throws(ExpectationFailedException::class);
|
||||||
|
|
||||||
|
test('not failures with multiple needles (some failing)', function () {
|
||||||
|
expect([1, 2, 42])->not->toContain(42, 1);
|
||||||
|
})->throws(ExpectationFailedException::class);
|
||||||
|
|||||||
Reference in New Issue
Block a user