Как протестировать пустой метод с инструментами тестирования Junit?

Это зависит от Вашего проекта и команды обычно. Пессимистическая блокировка хороша, потому что легко понять - один dev за один раз и никакое требуемое слияние!

Однако плохая вещь о, точно что - один dev за один раз. У меня есть ситуация прямо сейчас, куда коллега пошел локальный, и прежде чем он уехал, он проверил все так, чтобы, если он должен был исправить какие-либо ошибки, он мог бы возвратиться и регистрировать все свои изменения.... большие для него, паршивые для меня и остальной части команды разработчиков в основе.

, Если можно обойти пессимистическую привязку команды тогда ее штраф для использования его, действительно, самая большая причина, люди ненавидят его, то, потому что практика ее Visual SourceSafe по умолчанию. Если Вы не уверены в слиянии большого количества изменений, то у Вас есть другая причина использовать его - если Вы когда-либо использовали оптимистическую блокировку SCM и поднимали слияние, Вы будете знать, как трудно оно должно восстановиться.

, Если бы можно обработать слияние, тогда оптимистическая блокировка выше, и я рекомендовал бы его, но Вы не должны вручать свою карту фаната, если Вы не хотите использовать его.

29
задан Rotek 14 February 2015 в 22:23
поделиться

5 ответов

Вы можете проверить размер, если очередь до и после вызова вашего метода, что-то вроде:

int size = queue.length();
followLink(page, link);
assertEquals(size+1, queue.length()); // or maybe size+2?

еще одна вещь, которую вы можете сделать, это начать с пустой очереди, вызвать followLink, затем удалить из очереди первый элемент и проверить его значения .

15
ответ дан 28 November 2019 в 01:22
поделиться

В часто задаваемых вопросах JUnit есть раздел, посвященный методам тестирования, которые возвращают void . В вашем случае вы хотите протестировать побочный эффект вызываемого метода.

Пример, приведенный в FAQ, проверяет, что размер Collection изменяется после добавления элемента .

@Test
public void testCollectionAdd() {
    Collection collection = new ArrayList();
    assertEquals(0, collection.size());
    collection.add("itemA");
    assertEquals(1, collection.size());
    collection.add("itemB");
    assertEquals(2, collection.size());
}
42
ответ дан 28 November 2019 в 01:22
поделиться

Итак - проверяем после вызова метода очередь, добавляются ли в очередь переданные в метод значения. Для этого вам понадобится доступ к очереди (что-то вроде getQueue ()).

0
ответ дан 28 November 2019 в 01:22
поделиться

Скорее всего, ваша очередь частная , поэтому проверка размера не сработает. Решение «дизайн для тестирования», которое я видел, заключается в использовании вместо этого частных методов и членов пакета. Поскольку ваши тесты junit, скорее всего, будут в одном пакете, они будут иметь доступ.

Это само по себе позволяет тесту побочного эффекта « queue.length () » работать.

Но я бы пошел дальше: действительно, вам следует подумать о том, чтобы проверить, что ваш метод вставил ] исправьте страницу и укажите ссылку на вашу очередь. Детали для этого требуют дополнительных знаний о том, как вы представляете (и комбинируете) страницу и ссылку.

Решение jMock также очень хорошее, хотя, по правде говоря, я гораздо больше знаком с написанием своих собственные испытательные жгуты.

3
ответ дан 28 November 2019 в 01:22
поделиться

Используйте библиотеку jMock и имитируйте хранилище , в котором находится ваша очередь, jMock позволяет утверждать, был ли вызван фиктивный метод и с какими параметрами.

0
ответ дан 28 November 2019 в 01:22
поделиться
Другие вопросы по тегам:

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