Являются ли JUnit @Rule и ExpectedException.none () поточно-ориентированными? - PullRequest
0 голосов
/ 18 сентября 2018

Я пишу тест 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 означает, что методы тестирования не являются поточно-ориентированными, и что в будущем, если мы захотим перейти к выполнению методов тестирования в Параллельно это не будет работать, потому что тест, который не ожидал исключения, на самом деле увидит исключение. Это правда? Есть ли обходной путь для этого? Я не смог найти в интернете никакой документации по этому поводу.

...