2015-08-19 2 views
2

Я пытаюсь создать XCTestCase для проверки переупорядочения в моем контурном представлении (в приложении OS X). При использовании интерфейса функции записи теста, Xcode печатает это:Xcode UI Testing - перетаскивание

window.outlines.staticTexts["<cell which I want to move>"].click() 

Я попытался перетащить ячейку как внутри, так и снаружи контурный вида, Xcode создает один и тот же код бесполезного.

Кто-нибудь знает, как проверить перетащить & правильно удалить в Xcode 7?

+1

Вы пробовали 'общественный функ pressForDuration (продолжительность: NSTimeInterval, thenDragToElement otherElement: XCUIElement)' –

+0

не @NickMcConnell там нет такого метода. Я боюсь, что он доступен только на iOS. –

+0

Извините, что не смог помочь –

ответ

6

Не уверен, если это новое, но в Xcode 7.2, если вы посмотрите на заголовок для XCUIElement, есть clickForDuration(thenDragToElement:) функция для OS X. Кажется, работает для меня с NSOutlineView.

Это из заголовка ...

/*! 
* Clicks and holds for a specified duration (generally long enough to start a drag operation) then drags 
* to the other element. 
*/ 
public func clickForDuration(duration: NSTimeInterval, thenDragToElement otherElement: XCUIElement) 
+0

Работает как шарм, спасибо! Не видел эту функцию раньше, возможно, она была добавлена ​​в Xcode 7.2. –

+0

Также работает с Xcode 8/Swift 3, но функция: 'func press (forDuration duration: TimeInterval, thenDragTo otherElement: XCUIElement)'. С Swift 2.3 это 'func pressForDuration (продолжительность: TimeInterval, thenDragToElement otherElement: XCUIElement)' – Daniel

0

Единственное, что я могу предложить, - попробовать проверить функции доступности проверяемого кода. Для тестирования пользовательского интерфейса необходимо иметь доступную информацию, чтобы понимать, что происходит в пользовательском интерфейсе. См. Apple WWDC15 UI Testing video примерно в 39:30 в качестве примера того, как исправить проблемы, когда запись пользовательского интерфейса не может правильно генерировать код.