Your cart is currently empty!
Laravel: Validation Testing
API Route:
... Route::post('/something', function (Request $request) { $request->validate([ 'name' => 'string' ]); }); ...
Test file:
public function test_validation_something() { $response = $this->postJson('/api/something', [ 'name' => 'hello' ]); $response->assertValid('name'); // --------------------------------------------- $response = $this->postJson('/api/something', [ 'name' => 123 ]); $response->assertInvalid('name'); }
With PHPUnit Data Providers:
use PHPUnit\Framework\Attributes\DataProvider; public static validation_something_provider() { return [ 'name string' => [['name' => 'hello'], true], 'name int' => [['name' => 123], false], 'name bool' => [['name' => true], false], ]; } #DataProvider('validation_something_provider') public function test_validation_something(array $postParams, boolean $valid) { $response = $this->postJson('/api/something', $postParams); if ($valid) { $response->assertValid('name'); } else { $response->assertInvalid('name'); } }
References:
Leave a Reply