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