Что именно мне нужно изучить?
blockquote>Минимально
- Java язык
- Java API , включая JDBC для доступа к базе данных
- IDE или текстовый редактор + Ant
- Java EE, в основном, сервлеты и JSP
- Контейнер сервлетов (например, Tomcat)
Tomcat кажется хорошим веб-сервером для Java.
blockquote>Он «приличный». Если вы не участвуете в EJB, возможно, вам не нужно будет ничего узнавать. В последнее время Glassfish 3 выглядит довольно круто, но я еще не играл с этим много. Обратите внимание, что это «больше», чем веб-сервер.
Какие параметры существуют для Интернета?
blockquote>О zillion различных фреймворках , Действительно, выбор одного действительно «трудный».
Я знаю, что для ORM существует спящий режим.
blockquote>Я несколько против ORM, но Hibernate - это то, что вам нужно, если вам нужен «полный» ORM. Вы также можете попробовать «частичные» ORM, такие как поддержка Spring JDBC или iBatis.
Есть ли у Java MVC? как насчет JSP? могут ли MVC и JSP быть вместе? beans?
blockquote>Да, большинство веб-фреймворков Java делают MVC. Spring MVC хорош, но я не могу рекомендовать ничего другого (особенно, не Struts 1!). JSP - это всего лишь HTML (или XML) механизм шаблонов. Старая школа JSP, со встроенным кодом Java - uncool; современный JSP с файлами тегов и библиотеками довольно хорош.
Я полагаю, что большинство фреймворков позволят вам использовать JSP для визуализации ваших Vs; Spring MVC и Struts делают. Некоторые также позволят вам использовать что-то еще (Velocity, Freemarker и т. Д.).
Бобы - это просто соглашение для объектов. В основном это означает, что вы используете геттеры и сеттеры (или некоторые альтернативы), и вы выполняете некоторые правила. Это должно позволить вашему объекту манипулировать определенными инструментами. Типичным примером является GUI, некоторые инструменты позволят вам создавать компоненты GUI для редактирования произвольных bean-компонентов (т. Е. Они будут визуализировать форму для редактирования своих полей).
Как Вы проверяете результаты?
Если необходимо запросить DB (и он кажется, что Вы, вероятно, делаете) для результатов затем, я соглашаюсь с Крисом K, кроме я пытался бы восстанавливать DB после каждого тестового сценария, не только каждого комплекта.
Это помогает избежать опасных взаимодействующих тестов
Что касается инструментов, я рекомендовал бы CppUnit. Вы действительно не делаете модульных тестов, но это не должно иметь значения, поскольку xUnit платформа должна дать Вам набор и платформу разрушения, необходимо будет автоматически настроить тестовое приспособление
Очевидно, это может привести к медленно рабочим тестам, в зависимости от Вашего размера базы данных, население и т.д. Вы можете присоединять/отсоединять базы данных вместо отбрасывания/восстановления.
Если Вы интересуетесь дальнейшим исследованием, проверяете Тестовые Шаблоны XUnit. Это - прекрасная книга и хороший веб-сайт для такого рода вещи.
И благодарит автоматизировать :)
Nick
Можно вывести/восстановить базу данных для каждого набора тестов и т.д. Так как Вы автоматизируете это, это может быть что-то в функциональности установки/разрушения.
Лучшей средой для такого тестирования, я верю, является VMware или эквивалент. Настройте свою базу данных, журнал транзакций и так далее, затем запишите всех - база данных, а также конфигурация. Затем, чтобы повторно протестировать, перезагрузите изображение и базу данных и начните тесты. Это все еще требует обслуживания тестов, когда система изменяется, но по крайней мере тесты повторяемы, который является одной из Ваших самых больших проблем в интеграционном тестировании.
Для автоматизации тестирования многие люди используют Perl, но мы нашли, что программы Perl растут как Topsy и становятся замысловатыми. Использование Python как язык сценариев (мы запускаем тесты C++) стоит, при попытке создать серию структурированных тестов.
Как @Kris K. говорит, что дамп и восстановление базы данных между каждым тестом, вероятно, будут способом пойти.
Так как Вы смотрите на выполнение тестирования, внешнего к Приложению, я надеялся бы создавать среду тестирования на языке, где можно использовать в своих интересах лучшие инструменты тестирования.
При создании среды тестирования в Java, Вы могли бы использовать в своих интересах JUnit и потенциально даже что-то как FitNesse.
Не думайте, что просто, потому что приложением под тестом является C++, который означает, Вы застреваете с помощью C++ для автоматизированного тестирования.
Я раньше восстанавливал базу данных в функции SetUp связанного с базой данных класса модульного теста. Таким образом, это было обеспечено это каждый тестовые прогоны при тех же условиях.
Можно рассмотреть для подготовки специального содержания базы данных к тестам, т.е. с меньшим количеством данных, чем текущая производственная версия (для хранения времени восстановления разумным).
Пожалуйста, попробуйте AnyDbTest, я думаю, что это именно тот инструмент, который вы найдете. ( www.anydbtest.com ).
Особенности:
1. Написание контрольного примера с использованием XML, а не кода Java / C ++ / C # / VB. Не нужны эти дорогие инструменты программирования.
2.Поддерживает все популярные базы данных, такие как Oracle / SQL Server / My SQL
3.Поддержка многих видов утверждений, таких как StrictEqual, SetEqual, IsSupersetOf, Overlaps и RecordCountEqual. и т.д. Кроме того, большинство утверждений может содержать префикс логики, а не оператора.
4. Позволяет использовать электронную таблицу Excel / Xml в качестве источника данных для тестов. Как вы знаете, электронная таблица Excel позволяет легко создавать / редактировать и поддерживать тестовые данные.
5.Поддерживает тестовую модель песочницы, если один тест будет выполнен в песочнице, все операции с базами данных в каждой БД будут откатываться, означая любые изменения. будет отменен.
6. Позволяет выполнять передачу данных из одной базы данных / Excel в целевую базу данных на этапе инициализации и завершения тестирования. Это простой способ подготовить тестовые данные для тестирования.
7. Уникальное перекрестное тестирование баз данных разных типов, что означает, что целевой и эталонный набор результатов могут поступать из двух баз данных, даже одна из которых является SQL Server, а другая - Oracle.
8. Сравнение стилей набора записей. AnyDbTest скажет вам, что является пересечением, или избытком, или отсутствием между двумя наборами записей.
9.Последовательное сравнение стилей для набора записей или скалярных значений. Это означает, что оба набора результатов будут сравниваться в их исходной последовательности.
10. Позволяет экспортировать набор результатов оператора SQL в файл Xml / Excel.