Comment l'unité de test express Routeur routes

Je suis nouveau sur le Nœud et de l'Exprimer et je suis en train de test de l'unité de mes itinéraires/contrôleurs. J'ai séparé mes itinéraires de mes contrôleurs. Comment puis-je tester mes itinéraires?

config/express.js

  var app = express();
  //middleware, etc
  var router = require('../app/router')(app);

app/router/index.js

  module.exports = function(app) {
    app.use('/api/books', require('./routes/books'));
  };

app/router/routes/books.js

  var controller = require('../../api/controllers/books');
  var express = require('express');
  var router = express.Router();

  router.get('/', controller.index);

  module.exports = router;

app/api/controllers/books.js

//this is just an example controller
exports.index = function(req, res) {
    return res.status(200).json('ok');
};

app/tests/api/routes/books.test.js

  var chai = require('chai');
  var should = chai.should();
  var sinon = require('sinon');

  describe('BookRoute', function() {

  });
  • Double Possible de Comment fonctionne une unité itinéraires de test avec Express?
  • Pas un doublon, liés question est de plus Express qui avait une API différente.
  • Utiliser ce Lien ou le Lien.
  • Outre les liens qui vous est donnée par @PraveshKhatri, vous voudrez peut-être jeter un oeil à la chai-http plugin
  • Je ne voudrais pas écrire des tests unitaires pour les routes. Garder les voies de la logique-moins. Votre logique à l'écart de la routes & écrire des tests unitaires pour eux. Fonctionnelle ou de tests d'intégration peut être ajouté pour les routes.
  • Je suis entièrement d'accord avec @xyz. Séparer votre logique à partir de vos points et vous serez en mesure de tester pleinement sans avoir à utiliser supertest (ou équivalents).
  • Il y a des tests sur des routes qui s'applique uniquement aux itinéraires. Donc, en disant: "une logique à l'écart de la route" n'est pas réellement résoudre le problème. Elle réduit au minimum, mais les routes nécessitent encore des tests, de l'OMI. Vous pourriez accidentellement lier le mauvais appel à un itinéraire. Vous pourriez avoir une faute de frappe dans l'itinéraire. Donc, il est encore "pure" liées à l'itinéraire de code de test qui est spécifique à votre application, de l'OMI.

InformationsquelleAutor cusejuice | 2016-02-05