2016-03-14 16 views
6

Tôi có div tiếp theo ->Làm cách nào để kiểm tra kết quả của div được nhấp với 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() là một ajax đó xác nhận và gửi dữ liệu ngay đến máy chủ và đi đến con đường '/irCurso{id}'.

Tôi muốn kiểm tra kết quả khi những div đó đã nhấp vào, tôi biết rằng tôi không thể sử dụng phương pháp ->click() có thể khiến nó hoạt động với thẻ <a>. Đây là mã của tôi:

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

Cảm ơn bạn :)

+0

Câu hỏi hay. Nếu bạn đã xem xét một cái gì đó như 'codeception', bạn có thể dễ dàng làm' click ('# grid-item') 'hoặc' click ('. Grid-item') '. Ngoài ra, bạn có thể sử dụng 'xpath' khi thuộc tính, lớp và id không đủ. Thật không may là đường cong học tập không phải là quá dễ chịu. – user2094178

+1

[Bạn nên tránh sử dụng cùng một id nhiều lần trong một tài liệu html] (http://programmers.stackexchange.com/a/127180/72522) (Tôi có nghĩa là 'id =" lưới-mục "') –

+0

Gần 1 năm sau , không có câu trả lời? –

Trả lời

-1

Nếu bạn đang sử dụng 5.3 hoặc thấp hơn không thể để kiểm tra kết quả của một div nhấp bởi các thử nghiệm API Laravel.

Khi bạn nhấp vào div của mình, bạn mong muốn chạy hàm JS. Thật không may là API thử nghiệm Laravel sẽ không giải thích các js của bạn, vì vậy nó sẽ không được thực thi. Và vì nó không được thực hiện, nên không có kết quả nào được đánh giá.

Nhưng với Dusk (trong laravel 5.4) bạn có thể kiểm tra javascript thông qua API thử nghiệm Laravel. Xem tài liệu để biết thêm thông tin về Dusk: https://laravel.com/docs/master/dusk

+0

Nó sẽ là tốt hơn để trả lời làm thế nào để thực sự giải quyết vấn đề, thay vì nói rằng có một cách để giải quyết nó. –

Các vấn đề liên quan