Как легко тестировать Java-классы? - PullRequest
3 голосов
/ 02 ноября 2010

У нас есть существующий веб-сервер Tomcat / Linux / Servlet / Java, но у нас больше нет разработчика. У нас есть код C # / Windows (настольное приложение), который выполняет те же вычисления и манипуляции с данными, что и веб-сайт. Я выясняю, почему эти два дают немного разные результаты.

Чтобы достичь этого, я хотел бы написать небольшой тестовый Java-файл, который вызывает код с конкретными входными данными и выплевывает вывод + некоторую отладочную информацию.

Моя главная проблема в том, что я новичок в том, что касается Java: с чего начать писать этот exe-файл и вызывать существующие классы (вместо того, чтобы Tomcat каким-то образом вызывал эти классы)?

У меня установлена ​​виртуальная машина Ubuntu с Eclipse. Исходный код Java установлен и компилируется.

Мой вопрос в основном касается того, как настроить проект exe-программы в Eclipse и настроить ссылки, необходимые для вызова этих расширенных классов. Речь идет не о самом языке Java (я знаю C #, который в конце концов был вдохновлен Java)

ТИА,

Ответы [ 5 ]

4 голосов
/ 02 ноября 2010

У вас должно быть все в порядке, просто выполняя некоторые тесты JUnit (почти такие же, как NUnit).

Вы можете добавить новый пакет со ссылками на пакеты других классов и написать тесты для них.

Для получения дополнительной информации вы можете проверить некоторые JUnit документы

Если вам нужно протестировать свои сервлеты, используйте Jetty + Junit.Более подробную информацию по этому вопросу можно найти здесь

2 голосов
/ 02 ноября 2010

Eclipse имеет встроенную поддержку JUnit , который является инструментом модульного тестирования для Java.Если вам нужна поддержка сервлетов или любой другой веб-среды, в которую встроено приложение, есть платформы, которые имитируют веб-сервер для вас. ServletTester является одним из них.

2 голосов
/ 02 ноября 2010

Вы не создаете exe-файлы в java (хотя это не невозможно), что вы делаете, это создаете Jar-файлы. Затем вы выполняете эти файлы JAR. Вам понадобится JUnit инфраструктура тестирования.

Затем вы можете написать свои тесты в Eclipse и выполнить их в Eclipse. Тесты будут работать как отдельное приложение. Вы также можете написать свое собственное приложение, которое выводит результаты теста в журнал, если вы предпочитаете использовать автономное приложение с основным методом. Обычное решение для ведения журналов см. В log4j , который действительно прост в использовании. Режим отладки в eclipse отлично подходит для опроса данных, если вы считаете, что что-то работает неправильно.

На последнем замечании вы также можете найти полезным использование mockito , которое означает, что вы можете макетировать объекты с заданными функциями. Например, создание ложных HTTP-запросов или ответов.

0 голосов
/ 04 ноября 2010

[Примечание: я ОП]

Спасибо всем за помощь. Много проницательной информации там. Трудно пометить одного лучше других.

Я понял, что могу просто вызвать main () в любом классе и набрать Shift + Alt + X, J, чтобы выполнить эту main () в Eclipse. Хотя это решение очень грязное, оно также очень быстрое и простое для подачи метода или 2 некоторыми входными данными и вывода некоторых выводов на консоль.

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

Еще раз спасибо.

0 голосов
/ 03 ноября 2010

JUnit - это хорошо, в общем

Я согласен, что JUnit и mockito - отличные отправные точки.Я очень люблю мокито.Лично я считаю, что это служит примером того, какими должны быть все фреймворки - он прост в использовании, быстр в освоении и очень функциональный.

Однако я бы порекомендовал вам просто отладитьсервер, напрямую через eclipse.


Отладка лучше (в данном случае)

По сути, вы можете настроить tomcat на прерывание во время выполнения и шагачерез ваш код.Находясь в режиме отладки, в Eclipse вы можете легко проверять переменные, запускать выражения и перепрыгивать через стек вызовов.Когда дело доходит до решения проблемы, отладка - это путь.Я думаю, что это лучший способ определить , почему именно вы получаете разные результаты с похожим кодом.

Быстрая ссылка и справка

Вот полезный пост в блоге о том, как настроить tomcat для отладки в Eclipse. Я написал его для работы с BlazeDS, ноте же основные действия применимы к любой установке Tomcat.Если у вас есть какие-либо вопросы, дайте мне знать, и я могу попытаться помочь.

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

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