Mon serveur express génère une erreur si des paramètres sont manquants (par exemple l'URI DB). Je veux tester à Mocha qu'il a effectivement jeté les erreurs, mais je ne sais pas comment je peux faire Mocha faire ça.Démarrage express du test Moka
if(!parameters.db) {
throw new Error('Please provide a db URI');
}
J'ai une configuration de test comme celui-ci:
it('Throws Error when no db URI provided in production mode', function() {
expect(require('../server')).to.throw();
done();
});
Lorsque mon application Express émet l'erreur, l'erreur est renvoyée dans la console et le test échoue (en fait, il ne se termine pas).
L'autre problème que j'ai est que Express vérifie seulement les paramètres si l'environnement est en mode de production. J'ai essayé de mettre l'environnement de processus en production dans la suite de tests, mais quand je l'exécute, le NODE_ENV
est toujours configuré pour 'tester'.
before(function() {
env = process.env;
// This doesn't really set the environment when I run the tests.
process.env.NODE_ENV = 'production';
});
Merci. L'approche de la solution a fonctionné, mais j'ai mis à jour votre code en corrigeant certaines parties qui ne fonctionnaient pas et en simplifiant (à mon avis). –
C'est un peu plus simple, mais vous avez toujours un bug - vous devez définir 'threwError' en dehors de try/catch si vous voulez' expect() 'en dehors de try/catch. – doublesharp