1. Go to this page and download the library: Download c-malet/class-test library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
c-malet / class-test example snippets
class TestSomeClass extends ClassTestCase {
public function getTestedClassName() {
return SomeClass::class;
}
public function getTestedClassConstructorParameters() {
return [
SomeRepository::class,
SomeService::class,
Logger::class,
DbInterface::class,
'someString'
];
}
public function testSomething() {
// Retrieve a new instance of SomeClass with dummy constructor parameters
// that can handle any parameters and return null all the time
$someClass = $this->getTestedClass();
$result = $someClass->doSomething('someText', 3);
$this->assert(...);
}
}
class TestSomeClass extends ClassTestCase {}
public function getTestedClassName() {
return SomeClass::class; // or the fully qualified class name
}
public function getTestedClassConstructorParameters() {
return [
SomeClass::class,
SomeInterface::class,
// An object can be provided directly, it will be kept unchanged
$someObject,
// If you want to provide several instances of the same class,
// or if you want to force a key to retrieve mocks later on,
// simply specify a key
'Logger1' => LoggerInterface::class,
'Logger2' => LoggerInterface::class,
// string, integer, array, ... can still be used directly
'someString',
12345,
// If a string would match a class name for instance, you can still
// force it as a string parameter this way
'SomeClass' => ClassTestCase::STRING_PARAMETER
]
}
class TestPizzaCooker extends ClassTestCase {
public function getTestedClassName() {
return PizzaCooker::class;
}
public function getTestedClassConstructorParameters() {
OvenInterface::class,
IngredientPicker::class,
PizzaFolder::class,
TimerHelper::class
}
public function testPizzaShouldAlwaysBeBaked() {
$pizzaCooker = $this->getTestedClass();
$pizzaCooker->cookPizza('margerhita', 'XL')
$this->getProphecy(OvenInterface::class)->bake()->shouldHaveBeenCalled(1);
}
public function testPizzaCalzoneShouldBeFolded() {
$pizza = $this->getProphecy(OvenInterface::class)->bake()->willReturn(
$this->addNewDummy(Pizza::class)->reveal()
);
// Folder should fold the previously baked pizza
$this->getProphecyMethod(FolderInterface::class, 'fold')->with([$pizza->reveal()]);
$pizzaCooker = $this->getTestedClass();
$pizzaCooker->cookPizza('calzone')
// A calzone should always be folded
$this->getProphecy(FolderInterface::class)->bake()->shouldHaveBeenCalled(1);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.