2012-08-27 29 views
14

Làm cách nào tôi có thể giả lập một máy khách và máy chủ trong Mocha bằng NodeJs. Cụ thể, tôi có đoạn mã sau:Mocking bằng cách sử dụng mocha trong NodeJs

app.post ('path name', function (req, res) { 
    // Some Action 
    res.send(response); 
}); 

Tôi muốn thử những req, res thông số và kiểm tra res (trạng thái, tiêu đề, tin nhắn).

Trả lời

16

Bản thân Mocha không cung cấp chức năng loại bỏ/mô hình/gián điệp. Sinon là một thư viện phổ biến. Trang chủ bao gồm các ví dụ về thử nghiệm ajax cũng như đối tượng XMLHTTPRequest giả của họ.

+1

Bạn có thể rõ ràng hơn về việc bạn đang cố gắng thực hiện kiểm tra tích hợp hoặc thử nghiệm đơn vị không? Một câu trả lời cho điều này sẽ được hiểu sai, trừ khi điều này được biết đến. – SonOfNun

+1

@SonOfNun Vì anh ấy đang nói về các câu trả lời chế nhạo, anh ấy hầu như chỉ đề cập đến các bài kiểm tra đơn vị. Nhưng bạn đúng, cần được làm rõ trong câu hỏi ban đầu. – demisx

4

tôi thấy Node-Fakeweb hữu ích

var request = require('request'); 
    // Mocking a client request 
    request.get({ uri: 'URI', body: 'body' }, function (err, resp, body) { 
    // Some Action 
    }); 
}); 
1

Bạn có thể sử dụng mocha với supertest để thử một yêu cầu. Dưới đây là một hướng dẫn tuyệt vời về cách thực hiện: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/

+1

'Supertest' được sử dụng để thử nghiệm tích hợp, không phải thử nghiệm đơn vị, vì nó truy cập điểm cuối thực và yêu cầu cơ sở dữ liệu phụ trợ. – demisx

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