Mocha : Tester un controller

27215
,

Bonjour,

J'essais de tester mon controller.
Il a une methode insert qui attend en parametre req, res et next.

Comment je les passe dans mon test mocha.
J'ai essayé le code suivant mais ce n'est pas bon (Cele ne m'etonne meme pas)

it("Should save data", function(){
     var res = {}, next = {};
     var result = this.BookController.insertBook({body: {title: "titre"}}, res, next);
     expect(result.message).to.be.equal("Book created!");
 });

Merci d'avance pour votre aide.

1 Réponse

3180
,

Salut, il y a des trucs étranges dans ton test

  • En général next sert de callback, donc c'est une fonction. Si tu veux la "mocker" utilise une fonction vide function(){} plutôt qu'un objet vide {}
  • Le résultat de ton insertion est retourné par la fonction insert, ce qui veut dire qu'elle est synchrone. Mais c'est très peu probable, si c'est un insert en base par exemple c'est forcément asynchrone. Donc la valeur de retour n'a pas d'intérêt. Le résultat sera passé en paramètre du callback

Pour pouvoir t'aider il faudrait aussi que tu nous montre comment ton controller est utilisé et comment il renvoie son résultat. J'ai l'impression qu'il affecte un message à res dans le but de répondre directement à une requête http.