Редактировать: Не доступно JUnit 4 на данный момент.JUnit Exception Testing
Привет,
У меня есть вопрос о «умных» тестирования исключение с JUnit. В это время, я делаю это так:
public void testGet() {
SoundFileManager sfm = new SoundFileManager();
// Test adding a sound file and then getting it by id and name.
try {
SoundFile addedFile = sfm.addSoundfile("E:\\Eclipse_Prj\\pSound\\data\\Adrenaline01.wav");
SoundFile sf = sfm.getSoundfile(addedFile.getID());
assertTrue(sf!=null);
System.out.println(sf.toString());
sf = sfm.getSoundfileByName("E:\\Eclipse_Prj\\pSound\\data\\Adrenaline01.wav");
assertTrue(sf!=null);
System.out.println(sf.toString());
} catch (RapsManagerException e) {
System.out.println(e.getMessage());
}
// Test get with invalid id.
try {
sfm.getSoundfile(-100);
fail("Should have raised a RapsManagerException");
} catch (RapsManagerException e) {
System.out.println(e.getMessage());
}
// Test get by name with invalid name
try {
sfm.getSoundfileByName(new String());
fail("Should have raised a RapsManagerException");
} catch (RapsManagerException e) {
System.out.println(e.getMessage());
}
}
Как вы можете видеть, мне нужен один TRY/поймать блок для каждой функции, которая должна бросить исключение. Кажется, это не лучший способ сделать это - или нет возможности уменьшить использование try/catch?
Я хотел бы предложить не делать System.out.println внутри теста. System.out и System.err имеют тенденцию смешивать и производить искаженный результат теста. – RockyMM