Я пишу тест JUnit и хочу, чтобы он проверял, что выдается исключение, поэтому написал следующий класс теста Java (на самом деле это не тест JUnit, который я написал, а тот, который иллюстрирует точку, которую я пытаюсь донести ).
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void testMethod1() {
thrown.expect(IllegalArgumentException.class);
thrown.expectMessage("Parameter cannot be null");
UtilClass.getSampleValue(null, new Object());
}
@Test
public void testMethod2() {
thrown.expect(IllegalArgumentException.class);
thrown.expectMessage("Parameter cannot be null");
UtilClass.getSampleValue(new Object(), null);
}
@Test
public void testMethod3() {
final Object actual = UtilClass.getSampleValue(new Object(), new Object());
assertNotNull(actual);
}
Когда я отправлял это на рассмотрение кода, некоторые писали в обзоре, что использование @Rule
означает, что методы тестирования не являются поточно-ориентированными, и что в будущем, если мы захотим перейти к выполнению методов тестирования в Параллельно это не будет работать, потому что тест, который не ожидал исключения, на самом деле увидит исключение. Это правда? Есть ли обходной путь для этого? Я не смог найти в интернете никакой документации по этому поводу.