Tôi đang sử dụng PHPUnit để kiểm tra mã nguồn PHP của mình, nhưng tôi cũng cần một cách để kiểm tra mã phía máy khách. Tôi sử dụng ExtJS để xây dựng các giao diện khá phức tạp gọi máy chủ cho dữ liệu. Tôi tự hỏi ở đây là làm thế nào để kiểm tra giao diện người dùng?Làm thế nào để kiểm tra đơn vị ExtJS hoặc các giao diện dựa trên JavaScript tương tự?
Trả lời
Có nhiều cách khác nhau.
Nếu bạn muốn thử nghiệm chức năng (như người dùng), hãy sử dụng một cái gì đó như Selenium hoặc Watir. Điều này sẽ hoạt động thông qua trang web của bạn với tư cách là người dùng và thực thi mã JavaScript và mã phụ trợ.
Nếu bạn chỉ muốn kiểm tra JavaScript của mình, tôi sẽ sử dụng JSTestDriver. Nó cho phép bạn kiểm tra đơn vị JavaScript của bạn. Nó không hỗ trợ các cuộc gọi async nhưng có thể thực hiện kiểm tra.
Có một công cụ mới được phát hành gần đây có tên là Siesta. Nó hướng tới Ext JS một cách cụ thể (mặc dù cũng có thể kiểm tra bất kỳ mã JS nào) và nó rất phù hợp để kiểm tra mã Ext JS UI vì nó có sẵn mô phỏng và ghi lại sự kiện Ext JS.
Tôi cũng sử dụng cá nhân Jasmine để thử nghiệm đơn vị của mình, cũng như nhóm Ext JS nội bộ, mặc dù nó không đặc biệt phù hợp với kiểm tra giao diện người dùng (rất tuyệt vời để thử nghiệm mã).
Tôi vừa chạy ngang qua Siesta, dành riêng cho ExtJS. Có vẻ đầy hứa hẹn. Đó là những gì nhóm Ext đã sử dụng để kiểm tra API của họ khi di chuyển từ v3 sang v4.
Tìm thấy trang này hữu ích trong khi điều chỉnh nền tảng thử nghiệm cho dự án ExtJS GUI của doanh nghiệp từ đầu. Dưới đây là bản cập nhật addon và topic và lựa chọn cuối cùng của chúng tôi, dựa trên trải nghiệm vài ngày. Tôi hy vọng ai đó tiết kiệm thời gian, lựa chọn và thoát khỏi các lỗi kiểm tra đầu tiên.
Nỗ lực đầu tiên là vặn mọi thứ bên trong Netbeans và sử dụng công cụ jsTestDriver tích hợp sẵn với hỗ trợ thư viện Jasmine mặc định. Thành công, nhưng như Jasmine chủ yếu là đơn vị (cô lập mã khối) thử nghiệm, chúng tôi có thể rút ra một đối tượng javascript bình thường, nhưng không thành công trong việc rút ra các thành phần Ext và do đó nội dung của nó. Chúng tôi đã cố gắng nhập thư viện Siesta bằng cách sử dụng cùng một phương pháp chuẩn (trong tệp jsTestDriver.conf), đã thấy nó thông qua hoàn thành mã, nhưng vẫn không có sự trợ giúp nào với các đối tượng ExtJS. Tôi tìm thấy trên Diễn đàn Siesta, rằng có một số khác biệt chính trong kiến trúc giữa Siesta và jsTestDriver, vì vậy chúng tôi quyết định từ bỏ tiết kiệm thời gian.
Vì Siesta là lựa chọn hiển nhiên nhất cho một dự án như vậy, bước tiếp theo là thực hiện chính xác sau Brynthum tutorial gốc. Mặc dù nó không phải là thích hợp hơn để đi ra ngoài IDE và nhân cửa sổ sản xuất với một mất tích hợp.
Quan trọng, hướng dẫn Brynthum cũng có một mẹo. Sau khi vượt qua bài kiểm tra đầu tiên của bạn trong Brynthum Harness Browser, bạn không thể thấy chi tiết kiểm tra ở bên phải và phải đối mặt với lỗi trình duyệt Uncaught TypeError: Không thể đọc thuộc tính 'parentNode' của null. Lý do là thư viện ExtJS cho Brynthum Harness Browser phải bắt buộc phải có phiên bản thư viện Siesta tương ứng. Hiện tại Siesta 2.0.5 = Ext 4.2.0. Đối với mục đích dự án của bạn, phiên bản thư viện ExtJS khác có thể được tải lên trong tập tin cấu hình.
- 1. Đơn vị kiểm tra giao diện trong Python
- 2. Làm thế nào để một đơn vị kiểm tra các phần mã là thủ tục hoặc dựa trên sự kiện
- 3. Làm cách nào để mã kiểm tra đơn vị sử dụng giao diện Thông thạo?
- 4. Làm thế nào để bạn kiểm tra đơn vị?
- 5. Làm thế nào để kiểm tra đơn vị IDisposable?
- 6. "Giao diện web" để kiểm tra PHPUnit?
- 7. Làm thế nào để viết bài kiểm tra đơn vị cho các chức năng dựa trên dữ liệu động?
- 8. Kiểm tra đơn vị - Làm thế nào để tiếp tục?
- 9. Hadoop: Làm thế nào để kiểm tra đơn vị FileSystem
- 10. kiểm tra đơn vị python cách làm thế nào để
- 11. Làm thế nào để có được đầu ra giao diện điều khiển trong Visual Studio 2012 Đơn vị kiểm tra
- 12. Kiểm tra đơn vị XQuery
- 13. DAO Kiểm tra đơn vị
- 14. Làm thế nào để viết đơn vị xét nghiệm cho giao diện điều khiển ứng dụng tương tác
- 15. Kiểm tra đơn vị Android với giải pháp cập nhật giao diện người dùng AsyncTask và giao diện người dùng
- 16. Tạo các Bài kiểm tra Đơn vị Tự động
- 17. Kiểm tra đơn vị hoặc Kiểm tra chức năng?
- 18. Cách kiểm tra đơn vị mã Javascript tương tác với các phần tử DOM
- 19. Làm cách nào để bạn kiểm tra giao diện?
- 20. Viết một bài kiểm tra đơn vị để thực hiện nhiều giao diện
- 21. Làm cách nào để thực hiện kiểm tra đơn vị tự động trong các gói SSIS?
- 22. Làm thế nào để thử DateTime.Now trong các bài kiểm tra đơn vị?
- 23. IronPython Kiểm tra đơn vị trên C#
- 24. Giao diện làm cho việc kiểm tra đơn vị và chế nhạo dễ dàng như thế nào?
- 25. Làm thế nào để viết bài kiểm tra đơn vị kiểm tra bất biến đồng thời
- 26. Làm thế nào để đơn vị kiểm tra trường hợp mặc định của một enum dựa lệnh switch
- 27. Làm thế nào để kiểm tra đơn vị đúng cách .jax() hứa hẹn sử dụng Jasmine và/hoặc Sinon?
- 28. Kiểm tra hồi quy dựa trên Java
- 29. Có cách nào để hiển thị các dòng được bao phủ bởi các bài kiểm tra đơn vị trên giao diện người chỉnh sửa trong IntelliJ Idea không?
- 30. Làm thế nào để bạn tổ chức các bài kiểm tra đơn vị thành các gói?
JsTestDriver hiện hỗ trợ kiểm tra cuộc gọi không đồng bộ! Xem http://code.google.com/p/js-test-driver/wiki/AsyncTestCase – mistaecko