Рекомендации: fail() vs assertTrue (false) - программирование
Подтвердить что ты не робот

Рекомендации: fail() vs assertTrue (false)

При намеренном отказе от тестового примера (например, когда исключение не выбрасывается), я видел, как люди используют как fail(), так и assertTrue (false). Существуют ли какие-либо преимущества для использования одного или другого?

try {
    //method call that should throw exception
    fail("oops");
} catch (Exception e) {}

против.

try {
    //method call that should throw exception
    assertTrue("oops", false);
} catch (Exception e) {}
4b9b3361

Ответ 1

Есть ли какие-либо преимущества в использовании одного или другого?

Функционально, нет. Однако fail() более четко передает намерение и, следовательно, лучше.

Ответ 2

Используйте параметр JUnit expected в аннотации @Test

@Test(expected = ArithmeticException.class)  
public void divisionWithException() {  
    int i = 1/0;
}  

Это не сработает, если не будет выбрано ArithmeticException.

Ответ 3

assertTrue просто вызывает сбой.

ИМХО fail() проще и понятнее.

Ответ 4

Оба могут использоваться (хотя fail лучше, потому что это действительно предназначено), но поскольку вы используете JUnit, вместо этого вы можете использовать @Test(expected=MyException.class).

Ответ 5

Используйте fail, иначе кто-то посмотрит на ошибку в журнале и подумает: "Что false, что должно быть правдой".