J'ai besoin d'aide pour résoudre mon problème de test sur les codes nodejs. J'utilise mocha et supertest. Je suis confondu avec l'implémentation dans supertest. Je ne sais pas le résoudre. J'essaie d'automatiser le téléchargement d'un fichier.
`describe('GET /entry/:entryId/file/:id/download', function(){
it('should pass download function', function(done){
this.timeout(15000);
request(app.webServer)
.get('/entry/543CGsdadtrE/file/wDRDasdDASAS/download')
.set('Authorization', 'Bearer eyJ0eXAiOiJKV1QiLCJhbGco')
.expect(200)
.end(function(err, res){
if (err) return done(err);
console.log(err, res);
done();
});
});
});
J'ai reçu une erreur similaire de Mocha lors du test d'une application express. Texte complet de l'erreur:
0 passing (185ms)
2 failing
1) loading express responds to /:
TypeError: app.address is not a function
at Test.serverAddress (test.js:55:18)
at new Test (test.js:36:12)
at Object.obj.(anonymous function) [as get] (index.js:25:14)
at Context.testSlash (test.js:12:14)
2) loading express 404 everything else:
TypeError: app.address is not a function
at Test.serverAddress (test.js:55:18)
at new Test (test.js:36:12)
at Object.obj.(anonymous function) [as get] (index.js:25:14)
at Context.testPath (test.js:17:14)
Je l'ai corrigé en l'ajoutant à mon serveur express.js, c.-à-d. Exporter l'objet serveur
module.exports = app
Les utilisateurs de TypeScript, confrontés à cette erreur, vérifient deux choses:
module.exports = app
(merci à @Collin D )import * as app from "./app"
import app from "./app"
Je faisais face au même problème, la solution ci-dessus ne fonctionnait pas pour moi, quelqu'un à ma place A gentiment suivi ce type
Les exportations dans server.js devraient être
module.exports.app = app;
Si vous avez plusieurs modules, utilisez la fonctionnalité es6
module.exports = {
app,
something-else,
and-so-on
}
mon package.json pour la version réf. croisée ..
{
"name": "expressjs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "mocha **/*.test.js",
"start": "node app.js",
"test-watch": "nodemon --exec npm test"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.16.4",
"hbs": "^4.0.1"
},
"devDependencies": {
"mocha": "^5.2.0",
"supertest": "^3.3.0"
}
}