Как легко создавать модульные тесты в eclipse [закрыто]


95

Я хочу легко создавать модульные тесты, просто выбирая метод. Есть ли в eclipse инструмент, который это делает? Он должен поддерживать шаблоны. Я должен иметь возможность создавать как положительные, так и отрицательные тесты.


1
Я думаю, что этот плагин eclipse - это то, что вам нужно: MoreUnit
Гийом

Привет всем, что-нибудь посовременнее?
GC_

Ответы:


27

Вы можете использовать мой плагин для простого создания тестов:

  1. выделить метод
  2. нажмите Ctrl+ Alt+ Shift+U
  3. он создаст для него модульный тест.

Плагин доступен здесь . Надеюсь это поможет.


1
Похоже, это отличный плагин! Мне просто интересно, знаете ли вы что-то подобное для C / C ++ в Eclipse?
MikeyE

2
этот плагин просто не работает для меня, говоря: «Это на самом деле тест JUnit» в моем классе :) Я хотел что-то простое и работающее.
kiedysktos

Привет, @fastcodejava, пожалуйста, помогите, мы получаем следующие ошибки: при использовании сайта обновлений: невозможно прочитать репозиторий на sourceforge.net/projects/fast-code/files/update/content.xml . при использовании jar: тестовый профиль недоступен, перейдите в настройки junit, чтобы установить профиль
Хасиб Ансер

Что-нибудь есть стандартное затмение?
GC_

179

Чтобы создать шаблон тестового случая:

«Новый» -> «Тестовый пример JUnit» -> Выбрать «Тестируемый класс» -> Выбрать « Доступные методы ». Я думаю, что волшебник вам очень прост.


4
Я думаю, что OP хотел выбрать метод и создать модульный тест. Я написал для этого плагин.
fastcodejava 01

1
Это именно то, что я искал, функция Netbeans делает то же самое, и при использовании maven хорошо, что он создает тестовый сценарий в правильной папке
Тереза ​​Форстер

4
@TheresaForster Какой вам нравится? Этот ответ или тот, который дал fastcodejava?
javaguy

2
Обратите внимание, что «доступные методы» находятся на следующей странице мастера (по крайней мере, в Eclipse 4)
bcoughlan

2
Горячие клавиши для этого: ALT + SHIFT + N -> выберите тестовый пример JUnit (или нажмите J 3 раза)
Мэтт Р.

7

Ознакомьтесь с этим обсуждением [Как автоматически создавать джуниты?]

Если вы начинаете новое и это java-приложение, то Spring ROO тоже выглядит очень интересно!

Надеюсь, это поможет.


-3

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

Близко к этому есть что-то вроде FitNesse , где вы можете настроить тесты, а затем отдельно вы настраиваете вики-страницу со своими тестовыми данными, и она запускает тесты с этими данными, публикуя результаты как красные / зеленые.

Если вы были бы счастливы сделать написание тестов намного быстрее, я бы посоветовал Mockito , фреймворк для имитации , который позволяет вам очень легко имитировать классы вокруг того, который вы тестируете, так что меньше настроек / разборок, и вы знаете, что действительно тестирование этого одного класса вместо зависимого от него.


29
Ни один инструмент не может написать модульный тест, который вы собираетесь создать, но OP хотел найти инструмент, который выделит метод и созданный тест-заглушку. Затем вам нужно заполнить тело метода тестирования. инструмент по умолчанию, который поставляется с eclipse, делает довольно хорошую работу, но нельзя выделить метод и создать тест. Также в тесте уже есть инструмент по умолчанию не будет работать.
fastcodejava 01

6
Во-первых, могут быть полезны даже автоматически сгенерированные тесты. Иногда вы просто забываете проверить что-то очевидное - например, проверку нулевого указателя. Во-вторых, я думаю, что вопрос заключается в том, как предварительно сгенерировать тесты, которые вы будете реализовывать сами. Что-то вроде того, если вам нужно проверить, выдает ли ваш метод исключение соответственно, инструмент может автоматически сгенерировать пустой тестовый метод с аннотацией @Test (ожидаемый = ...).
Radium
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.