0
votes

Junit Asserting Demande de post HTTP

J'ai un test httpclient pour mon application de démarrage à ressort. J'ai une classe qui jette une exception si la demande d'une post sur le serveur est dans une chaîne 2048 octets ou plus.

@Test
    public void testSize() throws ClientProtocolException, IOException {
        Random r = new Random(123);
        long start = System.currentTimeMillis();
        String s = "";
        for (int i = 0; i < 65536; i++)
            s += r.nextInt(2);
        String result = Request.Post(mockAddress)
                .connectTimeout(2000)
                .socketTimeout(2000)
                .bodyString(s, ContentType.TEXT_PLAIN)
                .execute().returnContent().asString();

    }


2 commentaires

Avez-vous une exception? @Test a un argument pour affirmer qu'une exception a été lancée, E.g @Test (attendu = ioexception.class) .


Oui c'est censé donner une exception avec le message d'erreur. Cela a fonctionné, merci. S'il vous plaît écrivez cela comme une réponse afin que je puisse accepter et vous donner des points.


4 Réponses :


3
votes

Vous pouvez entourer la partie défaillante avec un try / capture et une échec de l'appel () à la fin du bloc d'essai. Si une exception est lancée, l'instruction FAIL () ne doit pas être atteinte et votre test doit passer.


1 commentaires

Je préfère cette méthode que vous pouvez ensuite vérifier l'exception lui-même pour vous assurer qu'il contient des messages d'échec à laquelle vous vous attendez peut-être.



1
votes

@Test a un argument pour affirmer qu'une exception particulière est lancée, vous pouvez écrire votre test comme E.g: xxx


0 commentaires

1
votes

Il y a 3 façons que vous puissiez atteindre cela:

1) Utilisez @Test (attendu = .... code>) Annotation où vous fournissez une classe d'exception que vous souhaitez vérifier. P >

@Test
public void test() {
  try {
    // your test logic
    fail(); // if we get to that point it means that exception was not thrown, therefore test should fail.
  } catch (IOException e) {
    // if we get here, test is successfull and code seems to be ok.
  }
}


0 commentaires

0
votes

Il existe une autre solution, non déjà présentée dans ces réponses et est ma préférence personnelle. assertThatTrothrownby

dans votre cas xxx

* Disclaimer, ci-dessus Code écrit directement dans SO Editeur


0 commentaires