2016-03-14 7 views
6

mam następny div ->Jak przetestować wynik kliknięcia div za pomocą 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() jest ajax że zweryfikować i wysłać dane teleadresowe do serwera i przejdź do trasy '/irCurso{id}'.

Chcę przetestować wynik po kliknięciu elementu div, Wiem, że nie można użyć metody ->click(), ponieważ działa ona tylko z tagiem <a>. To jest mój kod:

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

Dziękuję :)

+0

Dobre pytanie. Jeśli miałbyś wziąć pod uwagę coś takiego jak "kodekcepcja", możesz łatwo zrobić "kliknij" ("# element siatki") 'lub' kliknij ("element siatki") '. Możesz także użyć 'xpath', gdy atrybuty, klasy i identyfikatory nie są wystarczające. Niestety krzywa uczenia się nie jest zbyt przyjemna. – user2094178

+1

[Powinieneś unikać tego samego id wiele razy w jednym dokumencie HTML] (http://programmers.stackexchange.com/a/127180/72522) (Mam na myśli 'id =" element siatki "') –

+0

Prawie 1 rok później , brak odpowiedzi? –

Odpowiedz

-1

Jeśli używasz 5.3 lub obniżyć nie jest możliwe, aby przetestować wynik div kliknął testem API laravel.

Po kliknięciu elementu div oczekiwane jest uruchomienie funkcji JS. Niestety test testowy Laravel nie interpretuje twojego js, ​​więc nie zostanie wykonany. A ponieważ nie jest wykonywany, nie ma wyników do oceny.

Ale z Dusk (w wersji 5.4) można testować javascript za pomocą interfejsu API testu Laravel. Sprawdź dokumentację, aby uzyskać więcej informacji o Dusk: https://laravel.com/docs/master/dusk

+0

Byłoby lepiej odpowiedzieć na pytanie, jak faktycznie rozwiązać problem, zamiast mówić, że istnieje sposób, aby go rozwiązać. –