Это зависит от того, что вы подразумеваете под «тестированием графического интерфейса Cocoa».
Если вам нужны такие инструменты, как старый инструмент Virtual User включен в MPW, тогда их немного; вы будете использовать такие инструменты, как Squish и Eggplant.
Если вы хотите написать модульные тесты для человеческого интерфейса вашего приложения, я предлагаю вам следовать "доверяй, но проверяй", при котором вы доверяете тому, что, пока вы устанавливаете правильные связи (в соответствии с вашей структурой), ваши пользователь может правильно взаимодействовать с вашей структурой. Это означает, что вы можете выполнить большую часть тестирования, проверив, что ваша модель и код контроллера правильно подключены к вашим представлениям.
В своем блоге я написал пару примеров того, как это сделать конкретно с Cocoa, один для тестирование пользовательских интерфейсов, созданных с помощью target-action, и один для тестирование пользовательских интерфейсов, созданных с помощью привязок Cocoa. (Помните, конечно, что эти две технологии не исключают друг друга: если вы хотите выполнять перетаскивание в табличном представлении, управляемом с помощью привязок Cocoa, у вас также будет источник данных и, возможно, делегат, подключенный через целевое действие. .)
То, для чего я обычно не пишу модульные тесты, — это позиционирование или тип элементов управления в их супервизоре. Однако иногда важно получить и сохранить правильность; в этом случае я могу просто запросить соответствующие свойства элементов управления и проверить их, используя стандартные утверждения.
Чего я практически никогда не делаю, так это пишу код для «симуляции событий». Самое близкое, к чему я когда-либо приходил, - это создание поддельного информационного объекта перетаскивания и передача его в источник данных представления схемы, чтобы убедиться, что он будет правильно обрабатывать перетаскивания.
person
Chris Hanson
schedule
01.06.2009