2017-12-15 19 views
1

을, Node.js를 기능 testdata과 기능 resignDocs에 대한 테스트 케이스, 내가 사용하여 파일 가지고 이 내 코드의 구조</p> <p>내가 <code>Mocha</code>를 사용하여 테스트 케이스를 쓰고 있어요

-

var app = require('../app') 

(app.js는 위 코드의 파일 이름입니다.)

이제 app.fetchdetails 내보낼 경우이 기능에 액세스 할 수 없습니다. 또한 reqresuploadHandler에서 필요합니다.

단위 테스트 기능을 작성하는 방법 waterfall.

+0

도움이 되나요? https://stackoverflow.com/questions/33795226/unit-testing-async-waterfall-using-mocha? – rad

+0

@rad 아니, 불행히도 도움이되지 않았다. – Darpan

답변

0

uploadHandler 앞에 기능을 정의하고 나중에 내보낼 수 있습니다. 이렇게하면 resignDocs, uploadHandler 및 심지어 uploadHandler 이상의 모든 권한을 테스트에서 얻을 수 있습니다.

var async = require('async'); 
 

 
function testdata(callback) { 
 
    fetchdetails(callback, req, res); 
 
} 
 

 
function resignDocs(callback) { 
 
    //do something 
 
    console.log(req.body.name); 
 
} 
 

 
const uploadHandler = (req, res) => { 
 
    async.waterfall([ 
 
     testdata, 
 
     resignDocs 
 
    ]); 
 
}; 
 

 
app.post('/uploadfile', uploadHandler); 
 

 
exports.server = app.listen(config.port,() => { 
 
    console.log('info', `Listening for incoming connections on port ${config.port}...`); 
 
}); 
 

 
exports.testdata = testdata; 
 
exports.resignDocs = resignDocs; 
 
exports.uploadHandler = uploadHandler;

당신은 기능을 내 보낸 후에는 수 같은 모의 REQ 및 고해상도 개체에 대한 예를 활용 sinon-express-mock합니다.

+0

같은 생각을하고 나서,'testdata'와'resignDocs' 함수에'req'와'res' 객체가 필요하다는 것을 알았습니다. 이것은'waterfall' 함수에서만 사용 가능합니다. 그래서'testdata' 함수를 테스트하기 위해'req' 나'res'를 조롱하는 방법 에서처럼 붙어 있습니다. – Darpan

+0

@Darpan 요청 및 응답을 조롱하기 위해 https://www.npmjs.com/package/sinon-express-mock과 같은 것을 사용할 수 있습니다. –