Je suis assez nouveau à JUnit, et je ne sais pas vraiment ce que les meilleures pratiques sont des exceptions et la gestion des exceptions.
Par exemple, disons que je suis en train d'écrire des tests pour une adresse ip de classe. Il a un constructeur IPAddress(String addr) qui permettra de jeter un InvalidIPAddressException si addr est null. Aussi loin que je peux dire de googler autour, le test pour le paramètre null ressemblera à ceci.
@Test
public void testNullParameter()
{
try
{
IPAddress addr = new IPAddress(null);
assertTrue(addr.getOctets() == null);
}
catch(InvalidIPAddressException e)
{
return;
}
fail("InvalidIPAddressException not thrown.");
}
Dans ce cas, try/catch a du sens parce que je sais que l'exception est à venir.
Mais maintenant, si je veux écrire testValidIPAddress(), il y a un couple de façons de le faire:
Façon n ° 1:
@Test
public void testValidIPAddress() throws InvalidIPAddressException
{
IPAddress addr = new IPAddress("127.0.0.1");
byte[] octets = addr.getOctets();
assertTrue(octets[0] == 127);
assertTrue(octets[1] == 0);
assertTrue(octets[2] == 0);
assertTrue(octets[3] == 1);
}
Chemin #2:
@Test
public void testValidIPAddress()
{
try
{
IPAddress addr = new IPAddress("127.0.0.1");
byte[] octets = addr.getOctets();
assertTrue(octets[0] == 127);
assertTrue(octets[1] == 0);
assertTrue(octets[2] == 0);
assertTrue(octets[3] == 1);
}
catch (InvalidIPAddressException e)
{
fail("InvalidIPAddressException: " + e.getMessage());
}
}
Est est de pratique courante de jeter exceptions inattendues à JUnit ou simplement de traiter avec vous-même?
Merci pour l'aide.