Câu trả lời:
Tôi đã kết thúc bằng cách sử dụng đơn vị nút và tôi thực sự hài lòng với nó.
Tôi đã sử dụng Expresso ban đầu nhưng thực tế là nó chạy thử nghiệm song song gây ra một vài vấn đề. (Ví dụ: sử dụng đồ đạc cơ sở dữ liệu không hoạt động tốt trong tình huống này).
.done()
imho.
.done()
phù hợp với thử nghiệm không đồng bộ. Tôi đồng ý đôi khi nó có thể hơi khó sử dụng, nhưng nó có một lý do rất tốt để làm theo cách này.
Tôi cũng đang tìm kiếm một khung kiểm tra tốt cho nút và tìm thấy Mocha . Nó là sự kế thừa chính thức của Expresso và có vẻ rất trưởng thành.
Nó cho phép bổ trợ các thư viện xác nhận khác nhau, nó cung cấp cho các phóng viên về phạm vi bảo hiểm mã và những thứ khác (bạn có thể bổ trợ cho chính mình). Nó có thể chạy đồng bộ hóa hoặc không đồng bộ và nó có API súc tích.
Tôi sẽ thử và báo cáo lại ...
Sau một khoảng thời gian đáng kinh ngạc dành cho các dự án khác, cuối cùng tôi đã trở lại với một dự án Javascript và có thời gian để chơi xung quanh với mocha. Tôi thực sự có thể khuyên bạn nên sử dụng nó. Các bài kiểm tra đọc rất độc đáo, tích hợp với gulp là tuyệt vời và các bài kiểm tra chạy rất nhanh. Tôi đã có thể thiết lập các lần chạy tự động độc lập cũng như chạy thử trên trình duyệt (browserify) và báo cáo bảo hiểm mã tương ứng trong khoảng nửa ngày (phần lớn thời gian để hiểu cách sử dụng browserify từ gulp). Đối với tôi, mocha dường như là một lựa chọn rất tốt cho khung thử nghiệm.
Tôi vẫn rất tin về Mocha. Tích hợp với chai cho phép bổ sung các kiểu xác nhận khác nhau. Bạn có thể kiểm tra một thiết lập làm việc trong dự án github này . Bây giờ tôi đang sử dụng nó với nghiệp, tích hợp báo cáo bảo hiểm mã, trình theo dõi tự động và tích hợp tốt với IntelliJ
Cá nhân tôi chỉ sử dụng mô-đun khẳng định, nhưng cũng thấy mình muốn nhiều hơn. Tôi đã xem qua nhiều mô-đun nút và các khung kiểm tra đơn vị phổ biến là đơn vị nút và nên (được tạo bởi cùng một người như Expresso (có thể là tên cập nhật?)
Nguyện cũng có vẻ đầy hứa hẹn.
Cá nhân tôi đã bị mắc kẹt với Expresso , nhưng có một loạt các khung khác nhau, phù hợp với hầu hết các phong cách thử nghiệm.
Joyent có một danh sách rộng lớn ; cho nó đi
thề là một thư viện thử nghiệm đơn vị vững chắc cho node.js nhưng cú pháp rất tẻ nhạt.
Tôi đã viết một bản tóm tắt mỏng gọi là lời thề lưu loát , làm cho API có thể kết nối được.
Và tôi đã viết một bản tóm tắt khác, [lời thề là] được xây dựng dựa trên lời thề thành thạo và phơi bày cú pháp kiểu BDD.
Một ví dụ sẽ là
var is = require("vows-is");
is.suite("testing is fun").batch()
.context("is testing fun?")
.topic.is("yes")
.vow.it.should.equal("yes")
.suite().run({
reporter: is.reporter
});
Tôi nghĩ trong số các khung thử nghiệm khác nhau có sẵn, mocha là mới nhất và rất đơn giản để thực hiện. Đây là một hướng dẫn tuyệt vời về cách sử dụng nó: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/
Ban đầu được tạo cho node.js, deadunit là một thư viện thử nghiệm đơn vị javascript cho node.js và trình duyệt. Một số thuộc tính độc đáo của nó:
count
xác nhận đơn giản giúp xử lý các ngoại lệ dự kiến và các xác nhận không đồng bộ dễ dàngTôi vừa tải lên một dự án mà tôi đang sử dụng để kiểm tra các nodejs với karma và Jasmine: narma . Các mô-đun nút của bạn được tải vào trình duyệt gật đầu để bạn có thể thực thi các mô-đun nút và sử dụng các thư viện như jquery trong cùng một đống.
phòng thử nghiệm là gói npm cung cấp giao diện người dùng dựa trên web mạnh mẽ để kiểm tra đơn vị. Nó hỗ trợ những thứ như thực thi từng cá nhân hoặc nhóm thử nghiệm và bước kiểm tra nút vào các thử nghiệm riêng lẻ. Nó hiện hỗ trợ mocha và nhiều khung sẽ được hỗ trợ trong nhu cầu tương lai.
Tìm hiểu thêm về nó ở đây .
Tuyên bố miễn trừ trách nhiệm: Tôi là tác giả.