added feedback from @nunomaduro

This commit is contained in:
Adrian Nürnberger
2020-06-19 20:39:09 +02:00
parent d0a74931dd
commit 75f7ee0acf
6 changed files with 23 additions and 73 deletions

View File

@ -53,11 +53,6 @@ trait TestCase
$this->setGroups($groups); $this->setGroups($groups);
} }
public function addDependencies(array $tests): void
{
$this->setDependencies($tests);
}
/** /**
* Returns the test case name. Note that, in Pest * Returns the test case name. Note that, in Pest
* we ignore withDataset argument as the description * we ignore withDataset argument as the description
@ -144,7 +139,7 @@ trait TestCase
{ {
return ExceptionTrace::ensure(function () use ($closure, $arguments) { return ExceptionTrace::ensure(function () use ($closure, $arguments) {
return call_user_func_array(Closure::bind($closure, $this, get_class($this)), $arguments); return call_user_func_array(Closure::bind($closure, $this, get_class($this)), $arguments);
})->getValue(); });
} }
public function getPrintableTestCaseName(): string public function getPrintableTestCaseName(): string

View File

@ -84,20 +84,15 @@ final class TestCall
return $this; return $this;
} }
public function dependsOn(string ...$tests): TestCall public function depends(string ...$tests): TestCall
{ {
$this->testCaseFactory $this->testCaseFactory
->factoryProxies ->factoryProxies
->add(Backtrace::file(), Backtrace::line(), 'addDependencies', [$tests]); ->add(Backtrace::file(), Backtrace::line(), 'setDependencies', [$tests]);
return $this; return $this;
} }
public function depends(string ...$tests): TestCall
{
return $this->dependsOn(...$tests);
}
/** /**
* Makes the test suite only this test case. * Makes the test suite only this test case.
*/ */

View File

@ -18,10 +18,10 @@ final class ExceptionTrace
* Ensures the given closure reports * Ensures the given closure reports
* the good execution context. * the good execution context.
*/ */
public static function ensure(Closure $closure): Mixed public static function ensure(Closure $closure)
{ {
try { try {
return new Mixed($closure()); return $closure();
} catch (Throwable $throwable) { } catch (Throwable $throwable) {
if (Str::startsWith($message = $throwable->getMessage(), self::UNDEFINED_METHOD)) { if (Str::startsWith($message = $throwable->getMessage(), self::UNDEFINED_METHOD)) {
$message = str_replace(self::UNDEFINED_METHOD, 'Call to undefined method ', $message); $message = str_replace(self::UNDEFINED_METHOD, 'Call to undefined method ', $message);

View File

@ -1,32 +0,0 @@
<?php
declare(strict_types=1);
namespace Pest\Support;
/**
* @internal
*/
final class Mixed
{
/**
* @var mixed
*/
private $value;
/**
* @param mixed $value
*/
public function __construct($value)
{
$this->value = $value;
}
/**
* @return mixed
*/
public function getValue()
{
return $this->value;
}
}

View File

@ -45,11 +45,10 @@
PASS Tests\Features\Depends PASS Tests\Features\Depends
✓ first ✓ first
✓ second ✓ second
✓ dependsOn ✓ depends
✓ dependsOn with ...params ✓ depends with ...params
✓ dependsOn with defined arguments ✓ depends with defined arguments
✓ dependsOn run test only once ✓ depends run test only once
✓ depends alias for dependsOn
PASS Tests\Features\Exceptions PASS Tests\Features\Exceptions
✓ it gives access the the underlying expectException ✓ it gives access the the underlying expectException
@ -153,5 +152,5 @@
WARN Tests\Visual\Success WARN Tests\Visual\Success
s visual snapshot of test suite on success s visual snapshot of test suite on success
Tests: 6 skipped, 86 passed Tests: 6 skipped, 85 passed
Time: 2.61s Time: 2.60s

View File

@ -16,32 +16,25 @@ test('second', function () use (&$runCounter) {
return 'second'; return 'second';
}); });
test('dependsOn', function () { test('depends', function () {
assertEquals( assertEquals(
['first', 'second'], ['first', 'second'],
func_get_args() func_get_args()
); );
})->dependsOn('first', 'second'); })->depends('first', 'second');
test('dependsOn with ...params', function (string ...$params) { test('depends with ...params', function (string ...$params) {
assertEquals(
['first', 'second'],
$params
);
})->dependsOn('first', 'second');
test('dependsOn with defined arguments', function (string $first, string $second) {
assertEquals('first', $first);
assertEquals('second', $second);
})->dependsOn('first', 'second');
test('dependsOn run test only once', function () use (&$runCounter) {
assertEquals(2, $runCounter);
})->dependsOn('first', 'second');
test('depends alias for dependsOn', function (string ...$params) {
assertEquals( assertEquals(
['first', 'second'], ['first', 'second'],
$params $params
); );
})->depends('first', 'second'); })->depends('first', 'second');
test('depends with defined arguments', function (string $first, string $second) {
assertEquals('first', $first);
assertEquals('second', $second);
})->depends('first', 'second');
test('depends run test only once', function () use (&$runCounter) {
assertEquals(2, $runCounter);
})->depends('first', 'second');