Courses

Testing in Laravel 11 For Beginners

Update Product: Test Validation Errors

Summary of this lesson:
- Testing form validation errors
- Verifying validation redirects
- Using assertInvalid and assertSessionHasErrors
- Testing form submission responses

Now that we have an edit form, let's test that the validation works correctly.


Laravel Code

Again, first, the working code.

php artisan make:request UpdateProductRequest

app/Http/Requests/UpdateProductRequest.php:

use Illuminate\Foundation\Http\FormRequest;
 
class UpdateProductRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
 
public function rules(): array
{
return [
'name' => 'required',
'price' => 'required',
];
}
}

app/Http/Controllers/ProductController.php:

use Illuminate\Http\RedirectResponse;
use App\Http\Requests\UpdateProductRequest;
 
class ProductController extends Controller
{
// ...
 
public function update(UpdateProductRequest $request, Product $product): RedirectResponse
{
$product->update($request->validated());
 
return redirect()->route('products.index');
}
}

The Test

The PUT request is used for updating, so in the test...

The full lesson is only for Premium Members.
Want to access all 25 lessons of this course? (90 min read)

You also get:

  • 69 courses (majority in latest Laravel 11)
  • Premium tutorials
  • Access to repositories
  • Private Discord