Условно игнорирующие тесты в JUnit 4

Существует 3 спутника, по крайней мере, что необходимо быть в состоянии получить из 24-32 там, и каждый из них широковещательно передает время от синхронизируемых атомных часов. Различия в те времена, которые Вы получаете в любой момент, говорят Вам, сколько времени широковещательная передача взяла для достижения Вас, и таким образом где Вы относительно спутников. Так, это сортирует чтений от чего-то, но это не соединяется с той вещью. Обратите внимание, что это не говорит Вам Вашу ориентацию, много фальшивок GPSes что (и скорость) путем интерполяции точек данных.

, Если Вы не считаете стоимость получателя, это - бесплатный сервис. По-видимому, существуют более высокие сервисы разрешения там, которые ограничиваются военным использованием. Те вероятны фиксированные затраты для лицензии для дешифрования сигналов наряду с соглашением о конфиденциальности.

Теперь Ваше устройство может поддерживать отслеживание GPS, в этом случае это могло бы связаться, сказать через GPRS к базе данных, которая сохранит местоположение, в котором устройство нашло себя быть, так, чтобы могли быть прослежены несколько устройств. Это потребовало бы некоторого соединения.

Карты или сохранены на устройстве или получены по соединению. Навигация вычисляется на основе баз данных тех карт. Это, вероятно, лицензированный объект со связанной стоимостью, хотя, если Вы используете сервис как Google Maps, у них есть лицензия с NAVTEQ и другими.

346
задан Andrzej Doyle 6 November 2009 в 07:54
поделиться

2 ответа

Способ JUnit сделать это во время выполнения - org.junit.Assume .

 @Before
 public void beforeMethod() {
     org.junit.Assume.assumeTrue(someCondition());
     // rest of setup.
 }

Вы можете сделать это в @Before или в самом тесте, но не в методе @After . Если вы сделаете это в самом тесте, ваш метод @Before будет запущен. Вы также можете сделать это в @BeforeClass , чтобы предотвратить инициализацию класса.

Ошибка предположения приводит к игнорированию теста.

Изменить: Для сравнения с @RunIf из junit-ext , их пример кода будет выглядеть так:

@Test
public void calculateTotalSalary() {
    assumeThat(Database.connect(), is(notNull()));
    //test code below.
}

Не говоря уже о том, что гораздо проще захватить и использовать соединение из Database.connect () таким образом.

449
ответ дан 23 November 2019 в 00:30
поделиться

Вы должны проверить проект Junit-ext . У них есть аннотация RunIf , которая выполняет условные проверки, например:

@Test
@RunIf(DatabaseIsConnected.class)
public void calculateTotalSalary() {
    //your code there
}

class DatabaseIsConnected implements Checker {
   public boolean satisify() {
        return Database.connect() != null;
   }
}

[Пример кода взят из их руководства]

48
ответ дан 23 November 2019 в 00:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: