Sto provando a testare i vari input personalizzati FormRequest
. Ho trovato soluzioni che:Test unitario FormRequest di Laravel
suggerisco di usare il metodo
$this->call(…)
e affermare laresponse
con il valore atteso (link to answer). Questo è eccessivo, perché crea una dipendenza diretta su Routing e Controller.prova di Taylor, dal laravel quadrofound in
tests/Foundation/FoundationFormRequestTest.php
. C'è un sacco di beffe e overhead fatto lì.
Sto cercando una soluzione in cui posso unit test ingressi singolo campo contro le regole (indipendente da altri campi nella stessa richiesta).
Esempio FormRequest:
public function rules()
{
return [
'first_name' => 'required|between:2,50|alpha',
'last_name' => 'required|between:2,50|alpha',
'email' => 'required|email|unique:users,email',
'username' => 'required|between:6,50|alpha_num|unique:users,username',
'password' => 'required|between:8,50|alpha_num|confirmed',
];
}
test desiderato:
public function testFirstNameField()
{
// assertFalse, required
// ...
// assertTrue, required
// ...
// assertFalse, between
// ...
}
public function testLastNameField()
{
// ...
}
come posso unità di test (assert) ogni regola di validazione di ogni campo in isolamento e individualmente?
Beh, come hai detto, FormRequests vengono testati all'interno laravel in modo da non mettere alla prova di nuovo, di convalida vengono anche testati in laravel. Non capisco esattamente cosa vuoi testare esattamente ... – PeterPan666
È una cosa molto semplice, sto cercando di testare le regole di convalida che ho impostato per le mie richieste di moduli. –
Quindi vuoi testare se 'XformRequest :: rules' diciamo' $ first_name === 'required''? – PeterPan666