XCode 7的新功能
首先罵一下apple,好少的official tutorial,好爛的documentation!!!這一點Android好太多!!!!
這在WWDC 2015出現,可以選左邊這個連結觀看影片。
整個UI test架構主要由以下三個classes構成:
XCUIApplication
這是UIApplication的代理人 (proxy),會永遠啟動一個新的process,幫助我們clean app state,XCUIApplication也是所有XCUIElement的最上層,形成一個element hierarchy:XCUIElement
這是UIApplication中的UI element的代理人。要找到畫面中的一個XCUIElement,我們需要進行query,其實體化物件為XCUElementQuery。要做任何event synthesis (例如tapping) 或是access property的動作一定要是unique element,否則XCTest不知道要找哪一個才是正確的,所以就會被判定成failure!
XCUIElementQuery
有一個安全測試XCUIElement是否存在的屬性: exists。使用exists屬性,即便UI element已經不存在,或是非唯一,都不會使得test case被判定成failure。
每個query都會回傳一個set,可能有零到多個elements,可以用subscript operator (e.g. [ ] )來取得:
Relationship Query
1. Descendents (所有在某個ui element下面的ui element):2. Children (direct descendents):
3. Containment:
這是當一堆無法unique分出來的elements,例如uitableview cell,但是他們subviews會有獨特的元素,就可以query他們的containment relationship,來代表此cell的獨特性。
Filter a query
filter一個傳回來的query:1. UI type
或者是方便的api:
2. ids: accessibility id / label / title
3. predicates
4. relationship
沒有留言:
張貼留言