Вот как я это делаю.Я создаю статический метод assertThrowsException, который принимает в качестве аргументов ожидаемый класс исключений и Runnable, который содержит тестируемый код.
import junit.framework.Assert;
public SpecialAsserts {
public void assertThrowsException(final Class<? extends Exception> expected, final Runnable codeUnderTest) {
try {
codeUnderTest.run();
Assert.fail("Expecting exception but none was thrown.");
} catch(final Throwable result) {
if (!expected.isInstance(result)) {
Assert.fail("Exception was thrown was unexpected.");
}
}
}
}
Это пример кода для использования специального утверждения в вашем тестовом классе (который расширяет AndroidTestCase или один из его производных):
public void testShouldThrowInvalidParameterException() {
SpecialAsserts.assertThrowsException(InvalidParameterException.class, new Runnable() {
public void run() {
callFuncThatShouldThrow();
}
});
}
Да, есть много работы, но это лучше, чем портировать junit4 на Android.