93 lines
2.1 KiB
PHP
93 lines
2.1 KiB
PHP
<?php
|
|
|
|
use App\Services\{{service}};
|
|
|
|
uses()->group('{{capability}}', 'unit');
|
|
|
|
/*
|
|
* Test Template for Pest Unit Tests
|
|
*
|
|
* Copy this file and replace:
|
|
* - {{capability}} with the capability name
|
|
* - {{service}} with the class being tested
|
|
*
|
|
* Mark pending tests with ->todo() during Red Phase
|
|
* Remove ->todo() and implement during Green Phase
|
|
*/
|
|
|
|
describe('{{service}}', function () {
|
|
|
|
beforeEach(function () {
|
|
$this->service = new {{service}}();
|
|
});
|
|
|
|
/*
|
|
* Test: {{method_description}}
|
|
*
|
|
* Tests the core logic of {{method_name}}
|
|
*/
|
|
it('{{method_description}}', function () {
|
|
// Arrange
|
|
$input = [
|
|
// Test input data
|
|
];
|
|
|
|
$expected = [
|
|
// Expected output
|
|
];
|
|
|
|
// Act
|
|
$result = $this->service->{{method_name}}($input);
|
|
|
|
// Assert
|
|
expect($result)->toBe($expected);
|
|
})->todo();
|
|
|
|
/*
|
|
* Test: Edge case handling
|
|
*/
|
|
it('handles {{edge_case}} gracefully', function () {
|
|
// Arrange
|
|
$edgeCaseInput = null;
|
|
|
|
// Act & Assert
|
|
expect(fn () => $this->service->{{method_name}}($edgeCaseInput))
|
|
->toThrow(\InvalidArgumentException::class);
|
|
})->todo();
|
|
|
|
/*
|
|
* Test: Calculation accuracy
|
|
*/
|
|
it('calculates {{calculation}} correctly', function () {
|
|
// Arrange
|
|
$a = 10;
|
|
$b = 20;
|
|
|
|
// Act
|
|
$result = $this->service->calculate($a, $b);
|
|
|
|
// Assert
|
|
expect($result)->toBe(30);
|
|
})->todo();
|
|
|
|
});
|
|
|
|
/*
|
|
* Data providers for parameterized tests
|
|
*/
|
|
dataset('valid_inputs', function () {
|
|
return [
|
|
'case 1' => [['input' => 'value1'], 'expected1'],
|
|
'case 2' => [['input' => 'value2'], 'expected2'],
|
|
'case 3' => [['input' => 'value3'], 'expected3'],
|
|
];
|
|
});
|
|
|
|
/*
|
|
* Example parameterized test
|
|
*/
|
|
it('processes valid inputs correctly', function ($input, $expected) {
|
|
$result = $this->service->process($input);
|
|
expect($result)->toBe($expected);
|
|
})->with('valid_inputs')->todo();
|