Автоматизация тестирования Windows GUI - FindWindowEx и управляющие классы - PullRequest
3 голосов
/ 11 июля 2010

Я унаследовал приложение окна C #, которое мне не безумно нравится.У меня приближается крайний срок, и я до смерти боюсь, что некоторые из моих изменений могут оказать неблагоприятное воздействие на существующую функциональность.

У меня есть опыт работы с RoR, и я довольно хорошотестирование в этой среде (с использованием как RSpec, так и Cucumber).

Мне нравится иметь тестовые сценарии, которые можно запускать на регулярной основе, и я хочу посвятить свое личное время их разработке для этого конкретного проекта.Я купил книгу на веб-сайте PragProg.com по тестированию GUI с использованием скриптов на Ruby (http://pragprog.com/titles/idgtr/scripted-gui-testing-with-ruby).). Пока я копаю то, что вижу, и думаю, что это должно работать хорошо.

К сожалению,У меня есть фундаментальное отсутствие понимания в отношении разработки приложений для Windows. Я вызываю вызовы FindWindowEx (через Win32API), чтобы «попытаться» получить субэлементы управления в моем приложении.

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

    edit = find_window_ex.call @main_window, 0, 'ATL:00434310', nil

Где @main_window - это приложение моего приложения.дескриптор главного окна, а «ATL: ...» - это класс области текстового поля. Нет объяснения относительно того, как автор пришел к «ATL: ...».

У меня естьпрочитайте несколько очень старых постов, касающихся MS SPY ++, но они, похоже, устарели (или по какой-то причине он не был установлен, когда я установил vs2010).

Итак, как мне лучше найти классы управления дляиспользоваться с тон находит окно WindowEx?У меня есть исходный код - я должен оттуда тянуть?Что делать, если у меня нет исходного кода и я хочу автоматизировать приложение?Есть ли утилита, которая позволяет каким-то образом «просматривать» элементы управления запущенного приложения?

Извините за длину - заранее спасибо за помощь!Боб

1 Ответ

0 голосов
/ 11 июля 2010

Лучше всего, чтобы вы установили компоненты так, чтобы вы получили Spy ++, это лучший из известных мне способов получения реальных имен классов esp. если у вас нет источника исходных элементов управления, который может быть из библиотеки или некоторых стандартных элементов управления ActiveX, поставляемых Microsoft.

Имя класса ATL, вероятно, предназначено для элементов управления, разработанных с использованием Microsoft Active Template Library (ATL), это библиотека шаблонов C ++, которая значительно упрощает разработку элементов управления ActiveX, объектов COM и т. Д. В C ++.

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