Разные ожидания от теста JUnit в разных ОС - PullRequest
4 голосов
/ 29 апреля 2019

У меня есть клиентское Java-приложение, которое работает на нескольких ОС.

Я хочу проверить логику, которая дает разные ожидания при работе в разных ОС.

Например, когда я работаю в Windows, логика пройдет, а когда я бегу в OSX, логика выдаст исключение.

Я могу написать два отдельных теста и выполнить только один, используя отдельные профили сборки для разных ОС, но можно ли написать один тест junit, который будет вести себя по-разному в разных ОС.

Для OSX я хочу аннотировать тест с исключением, как ожидалось, и для Windows должна работать нормальная логика. Возможно ли в Junit, что во время выполнения ожидания отличаются при определенных обстоятельствах?

С наилучшими пожеланиями,

Saurav

1 Ответ

5 голосов
/ 29 апреля 2019

с помощью System.getProperty("os.name") вы можете проверить, в какой операционной системе вы находитесь, затем вы можете использовать условный запуск, чтобы исключить тестовые случаи, которые вам не нужны, в конкретной операционной системе, например,

public class SomeTest {
  @Rule
  public ConditionalIgnoreRule rule = new ConditionalIgnoreRule();

  @Test
  @ConditionalIgnore( condition = NotRunningOnWindows.class )
  public void testFocus() {
    // ...
  }
}

public class NotRunningOnWindows implements IgnoreCondition {
  public boolean isSatisfied() {
    return !System.getProperty( "os.name" ).startsWith( "Windows" );
  }
}

source: код аффинный

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...