for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare( strict_types = 1 );
namespace FileFetcher\Stopwatch\Tests\Integration;
use FileFetcher\Stopwatch\Factory;
use FileFetcher\StubFileFetcher;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Stopwatch\Stopwatch;
/**
* @covers \FileFetcher\Stopwatch\Factory
*
* @licence BSD-3-Clause
* @author Jeroen De Dauw < [email protected] >
*/
class FactoryTest extends TestCase {
public function testNewStopwatchFetcherReturnsFetcherThatUsesStopwatch() {
$stopwatch = $this->createMock( Stopwatch::class );
$stopwatch->expects( $this->once() )->method( 'start' );
$stopwatch->expects( $this->once() )->method( 'stop' );
$fetcher = ( new Factory() )->newStopwatchFetcher(
new StubFileFetcher( '' ),
$stopwatch
object<PHPUnit\Framework\MockObject\MockObject>
object<Symfony\Component\Stopwatch\Stopwatch>
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example:
function acceptsInteger($int) { } $x = '123'; // string "123" // Instead of acceptsInteger($x); // we recommend to use acceptsInteger((integer) $x);
);
$fetcher->fetchFile( 'whatever' );
}
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: