IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Spring MVC : Comment tester PUT/POST avec JUnit [Integration]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Par défaut Spring MVC : Comment tester PUT/POST avec JUnit
    Bonjour,

    J'ecris actuellement une application avec Spring MVC. Mon probleme est le suivant :
    Je voudrais tester mon controller REST. J'utilise donc une MockHttpServletRequest mais il semble y avoir un probleme car le serveur me renvoie le code 415 : Unsupported media type.
    Je tiens a preciser que le serveur fonctionne puisque j'ai tester avec un client REST et le PUT est gerer parfaitement.

    Il semble que ce soit un probleme de syntaxe dans le contenu de la requete, avez vous une idee de l'erreur ?

    Voici le code de mon test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    @Test
    public void testPutConsumer() throws Exception {
     
    MockHttpServletRequest request = new MockHttpServletRequest();
    MockHttpServletResponse response = new MockHttpServletResponse();
    request.setMethod("PUT");
    request.setRequestURI("/consumers");
     
    String content = "<consumer><login>bob4564</login><password>bob</password><email>bob.bob@gmail.com</email><activeDevice  id='1'></activeDevice><firstName>Bob</firstName><lastName>Dylan</lastName><phoneNumber>645789123</phoneNumber><pushToken>456fds89af4sd56</pushToken><streetNumber>451</streetNumber><zipCode>12003</zipCode></consumer>";
     
     
    request.setContent(content.getBytes("UTF-8"));
     
    request.setContentType(MediaType.APPLICATION_XML);
    request.setCharacterEncoding("UTF-8");
     
    servlet.init(new MockServletConfig());
    servlet.service(request, response);
     
    assertEquals(HttpStatus.MOVED_PERMANENTLY.value(),response.getStatus());    	
     }

  2. #2
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Par défaut
    Je viens de trouver mon probleme.

    Il faut en fait utiliser le methode addHeader pour definir le format du contenu de la requete.

    Le code suivant fonctionne cependant le serveur me reponds 200 alors qu'il devrais me repondre 302.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    @Test
     public void testPutConsumer() throws Exception {
     
    MockHttpServletRequest request = new MockHttpServletRequest();
    MockHttpServletResponse response = new MockHttpServletResponse();
    request.setMethod("PUT");
    request.setRequestURI("/consumers");
     
    String inputXml = "<consumer><login>1234567894561234568912515123132132</login><password>bob</password><email>bob.bob@gmail.com</email><activeDevice  id='1'></activeDevice><firstName>Bob</firstName><lastName>Dylan</lastName><phoneNumber>645789123</phoneNumber><pushToken>456fds89af4sd56</pushToken><streetNumber>451</streetNumber><zipCode>12003</zipCode></consumer>";
     
    request.setContent(inputXml.getBytes());
    request.addHeader("Content-Length",inputXml.getBytes().length);
     
    request.addHeader("Content-Type","application/xml");    	
    request.addHeader("Connection","keep-alive");
     
    servlet.init(new MockServletConfig());
    servlet.service(request, response);
     
    //assertEquals(HttpStatus.MOVED_PERMANENTLY.value(),response.getStatus());   
    assertEquals(HttpStatus.OK.value(),response.getStatus());
    assertTrue("Redirect url contains the new id",response.getRedirectedUrl().contains("consumers/"));        
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SoapUI] Comment tester un WebService avec des requêtes différentes
    Par houpli dans le forum Tests et Performance
    Réponses: 0
    Dernier message: 11/05/2012, 13h10
  2. [MVC] Spring MVC : Comment peut-on recevoir un Objet dans un controller ?
    Par Yamidev dans le forum Spring Web
    Réponses: 1
    Dernier message: 21/04/2011, 17h46
  3. [Spring MVC] Comment crée une session dans Spring
    Par dominou73 dans le forum Spring Web
    Réponses: 3
    Dernier message: 29/08/2007, 14h32
  4. Réponses: 3
    Dernier message: 20/10/2006, 17h43
  5. [INDY] comment faire un 'POST' avec idHTTP??
    Par gamez dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/05/2004, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo