7

Tôi hiện đang lấy mẫu khuôn khổ javascript làm kiến ​​trúc để phát triển phía máy khách cho một ứng dụng quy mô lớn sắp tới mà tôi sẽ phát triển.thử nghiệm đơn vị mô-đun javascript

Tôi đang tìm cách sử dụng mẫu quan sát mô-đun trong đó mỗi điều khiển tôi phát triển sẽ có tệp javascript riêng, không nắm giữ các điều khiển khác.

Từ khi thiết kế khung này cho ứng dụng của mình, tôi đang tìm cách tích hợp trong cơ chế thử nghiệm cho các mô-đun của mình - một cơ chế kiểm tra đơn vị cho javascript. Tôi không biết về bất kỳ khuôn khổ như vậy hoặc làm thế nào tôi có thể thiết lập như vậy. Bất kỳ đề xuất?

Là một phần của thử nghiệm như vậy, tôi cũng sẽ cần giả lập các yêu cầu http.

Thư viện tôi sẽ sử dụng trong phát triển là jquery.

Trả lời

7

Nhóm JQuery có QUnit.

Để trừu tượng hóa AJAX, bạn nên bọc nó một cách thích hợp hoặc chỉ kiểm tra các phương pháp thao tác dữ liệu.

+0

I second Qunit. Tôi cũng sẽ đề nghị một cái gì đó như sinon.js hoặc hoa nhài để giả/sơ khai phần ajax. –

1

Jasmine có thể là những gì bạn đang tìm kiếm. Nó đã được xây dựng trong mô phỏng hỗ trợ, và không dựa trên bất kỳ khuôn khổ khác.

Họ cũng có một số module riêng biệt để giả mạo câu trả lời AJAX.

Cài đặt rất đơn giản. Chỉ cần tải xuống phiên bản độc lập, viết một số bộ thử nghiệm và xem SpecRunner.html trong trình duyệt.

1

Cân nhắc sử dụng JsTestDriver để chạy thử nghiệm JS của bạn. Lợi ích chính mà nó cung cấp - nó có thể chạy thử nghiệm của bạn trên môi trường tích hợp liên tục, đó là điều cần thiết cho thực hành thử nghiệm đơn vị.

Một số tính năng bổ sung:

  1. Nó có thể được sử dụng cùng với QUnit và các khuôn khổ thử nghiệm khác.
  2. Nó có thể thực thi các thử nghiệm của bạn song song trên nhiều trình duyệt.
  3. Nó hỗ trợ bảo hiểm mã tính toán.

Danh sách thư viện nhại bạn có thể tìm thấy trong một thư viện khác thread.

0

BoilerplateJS là kiến ​​trúc tham chiếu để phát triển sản phẩm JavaScript quy mô lớn. Bạn có thể tìm thấy các bài kiểm tra được viết bằng cách sử dụng qunit, sinon và testr được bao gồm trong số tests folder.