В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Это зависит от того, как Приложение структурировано. Если код логики и GUI разделяется (MVC), затем тестирующий логику, легко. Смотрите на Michael Feathers "Скромное Диалоговое окно" (PDF).
РЕДАКТИРОВАНИЕ: Если Вы думаете об этом: необходимо очень тщательно осуществить рефакторинг, если Приложение не структурировано тот путь. Нет никакой другой техники для тестирования логики. Сценарии, которые моделируют щелчки, просто царапают поверхность.
Это на самом деле довольно легко:
Предполагают, что Ваш control/window/whatever изменяет содержание поля списка, когда пользователь нажимает кнопку, и Вы хотите удостовериться, что поле списка содержит правильный материал после щелчка.
Thats это. Контроллер содержит логический код и знает управление только через интерфейс. Теперь можно записать регулярный модульный тест на MyController:: ButtonWasClicked () путем насмешки управления. Если Вы понятия не имеете, о чем я говорю, прочитайте статью Michaels. Дважды. И снова после этого.
(Отмечают к сам: должен учиться не болтать так очень)
Так как Вы упомянули MFC, я предположил, что у Вас есть приложение, которое было бы трудно получить под автоматизированной тестовой обвязкой. Вы будете наблюдать лучшие преимущества платформ поблочного тестирования при создании тестов, поскольку Вы пишете код.. Но пытаясь добавить новую опцию способом, на котором делают пробную поездку, к приложению, которое не разработано, чтобы быть тестируемым.. может быть тяжелая работа и хорошо печальный.
Теперь то, что я собираюсь предложить, определенно тяжелая работа .. но с некоторой дисциплиной и настойчивостью Вы будете видеть преимущество достаточно скоро.
простым способом был мой предыдущий ответ. Это - трудный, но правильный выход.
На самом деле мы использовали Рациональный Тест Команды, затем Робот, но в недавних обсуждениях с Рациональным мы обнаружили, что у них нет планов поддержать Собственные x64 приложения, фокусирующиеся больше на.NET, таким образом, мы решили переключить инструменты Automated QA. Это является большим, но лицензирующие затраты не позволяют нам включать его для всех разработчиков.
Вся наша поддержка приложений API COM для сценариев, которые мы тест регрессии через VB, но это тестирует API не приложение как таковое.
Идеально мне было бы интересно о том, как люди интегрируют cppunit и подобные платформы поблочного тестирования в приложение на уровне разработчика.
Хотя это не может обработать сторону UI, я тест единицы код MFC, пользующийся библиотекой Boost Test. Существует статья Code Project о начале работы:
Хотя не прекрасный, лучшее я нашел для этого, AutoIt http://www.autoitscript.com/autoit3
"AutoIt v3, бесплатное программное обеспечение подобный ОСНОВНОМУ язык сценариев, разработанный для автоматизации Windows GUI и общих сценариев. Это использует комбинацию моделируемых нажатий клавиш, движения мыши и управления окном/управлением для автоматизации задач, способом не возможных или надежных с другими языками (например, VBScript и SendKeys). AutoIt является также очень небольшим, автономным и будет работать на всех версиях Windows out-of-the-box без раздражающего требуемого "времени выполнения"!"
Это работает хорошо, когда у Вас есть доступ к исходному коду управляемого приложения, потому что можно использовать Идентификационный номер ресурса средств управления, которыми Вы хотите управлять. Таким образом Вы не должны волноваться о моделируемых щелчках мышью по конкретным пикселям. К сожалению, в унаследованном приложении, можно найти, что идентификатор ресурса не уникален, который может вызвать проблемы.как бы то ни было. Это очень просто для изменения идентификаторов, чтобы быть уникальным и восстановить.
другая проблема - то, что Вы встретитесь с проблемами синхронизации. У меня нет испытанного и истинного решения для них. Метод проб и ошибок - то, что я использовал, но это ясно не масштабируемо. Проблема состоит в том, что сценарий AutoIT должен ожидать тестового приложения для ответа на команду, прежде чем сценарий даст следующую команду или проверку на корректный ответ. Иногда не легко найти, что удобное событие ожидает и наблюдает за.
Мое чувство состоит в том, что в разработке нового приложения я настоял бы на последовательном способе сигнализировать "ГОТОВЫЙ". Это было бы полезно пользователям - людям, а также сценариям тестирования! Это может быть проблемой для унаследованного приложения, но возможно можно представить его в проблематичных точках и медленно распространять его к целому приложению, в то время как обслуживание продолжается.
Хорошо у нас есть одно из этих огромных Приложений MFC на рабочем месте. Это - гигантская боль для поддержания, или расширяться... это - огромный комок грязи теперь, но это загребает moolah. Так или иначе
Другой подход, который имел некоторый успех, должен создать маленький определенный для продукта язык и тесты сценария что VBScript использования и некоторый дескриптор Управления, шпионя волшебство. Превратите общие действия в команды.. например, OpenDatabase был бы командой, которая в свою очередь введет необходимые блоки сценария для нажатия на Main Menu> File> "Open...". Вы затем создаете листы Excel, которые являются рядом таких команд. Эти команды могут взять параметры также. Что-то как ПРИГОДНЫЙ Тест.. но больше работы. После того как у Вас есть большинство общих определенных команд и готовые сценарии. Это - выбор, и соберите сценарии (отмеченный CommandIDs) для записи новых тестов. Исполнитель тестов анализирует эти листы Excel, комбинирует все небольшие блоки сценария в сценарий тестирования и выполняет его.
HTH