2016-03-14 10 views
6

Ho il prossimo div ->Come testare il risultato di un div cliccato con Laravel? (PHPUnit)

<div id="grid"> 
    <div id="grid-item" onClick="sendServer(1)">Data 1 </div> 
    <div id="grid-item" onClick="sendServer(2)">Data 2 </div> 
    <div id="grid-item" onClick="sendServer(3)">Data 3 </div> 

</div> 

sendServer() è un Ajax che convalidare e inviare dati al server e passare al percorso '/irCurso{id}'.

Voglio testare il risultato quando il div ha fatto clic, so che non posso usare il metodo ->click() perché funziona solo con il tag <a>. Questo è il mio codice:

$this->visit('/cursos') 
      ->click('id=grid-item') 
      ->seePage('irCurso/1'); 

voi :)

+0

Buona domanda. Se si dovesse prendere in considerazione qualcosa come "codeception", si potrebbe facilmente fare clic ("# grid-item") 'o' click ('. Grid-item') '. Inoltre puoi ricorrere a 'xpath' quando attributi, classi e id non sono sufficienti. Sfortunatamente la curva di apprendimento non è troppo piacevole. – user2094178

+1

[Si dovrebbe evitare di usare lo stesso id più volte in un documento html] (http://programmers.stackexchange.com/a/127180/72522) (intendo 'id =" grid-item "') –

+0

Quasi 1 anno dopo , nessuna risposta? –

risposta

-1

Grazie Se si utilizza 5.3 o abbassarlo non è possibile verificare il risultato di un div cliccato dal test API laravel.

Quando si fa clic su div, si prevede di eseguire una funzione JS. Sfortunatamente l'API di test di Laravel non interpreta il tuo js, ​​quindi non verrà eseguito. E poiché non viene eseguito, non ci sono risultati da valutare.

Ma con Dusk (in laravel 5.4) è possibile testare javascript tramite l'API di test di Laravel. Controlla i documenti per maggiori informazioni su Dusk: https://laravel.com/docs/master/dusk

+0

Sarebbe meglio rispondere come effettivamente risolvere il problema, invece di dire che c'è un modo per risolverlo. –