编辑:目前不提供JUnit 4。JUnit异常测试
那里嗨,
我有一个关于使用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/catch块的是应该抛出一个异常,各项功能。这似乎不是一个好方法 - 或者是否不可能减少try/catch的使用?
我会建议反对这样做的System.out.println内部测试。 System.out和System.err倾向于混淆并产生乱码测试输出。 – RockyMM 2012-11-20 12:31:59