A u t o m a t e   i O S   t e s t s   w i t h X C U I T e s t f r a m e w o r k I b r a h i m   A Z Z A M S e n i o r   A u t o m a t i o n   E n g i n e e r @ D a s h l a n e  
W h a t   i s   D a s h l a n e   ? D a s h l a n e   i s   a   P a s s w o r d   M a n a g e r ,   t h a t   h e l p s   y o u   m a n a g e   y o u r   i d e n t i t y   a n d   y o u r   p a y m e n t s   i n   a   s i m p l e   a n d   s e c u r e   w a y   e v e r y w h e r e .  
A g e n d a W h a t a r e   t h e   t o o l s w e n e e d ? T h e   2   w a y s t o   w r i t e a   t e s t   ? H o w   t o   p a r a l l e l i z e t e s t   r u n s ? H o w   t o   r u n t e s t s   a n d   i n t e g r a t e t h e m i n   C I   ?
W h a t i s X C U I T e s t ?   A   t e s t   f r a m e w o r k t h a t c o m e s w i t h X c o d e b y   A p p l e I t   i s u s e d t o   t e s t   n a t i v e   a p p s ( S w i f t ,   O b j e c t i v e - C ) I t   a l l o w s i n t e r a c t i n g w i t h a n   a p p ' s U I   e l e m e n t s
W h a t i s S w i f t ?   S w i f t   i s a   p r o g r a m m i n g l a n g u a g e c r e a t e d b y   A p p l e   i n   2 0 1 4 I t   i s m o d e r n ,   f a s t a n d   e a s y t o   l e a r n I t   i s u s e d t o   w r i t e t e s t s   i n   X C U I T e s t f o r   A p p l e   a p p s
A d d   t o   e x i s t i n g   p r o j e c t 1 . O p e n   y o u r X c o d e p r o j e c t 2 . G o   t o :   F i l e   - >   N e w   - >   T a r g e t 3 . S e l e c t   i O S   U I   T e s t i n g B u n d l e a n d   h i t   N e x t :
C r e a t e n e w   p r o j e c t 1 . O p e n   X c o d e 2 . G o   t o :   F i l e   - >   N e w   - >   P r o j e c t 3 . S e l e c t   S i n g l e   V i e w A p p   a n d   h i t   N e x t :
N a m e O f T h e A p p U I T e s t s . s w i f t I t   c o n t a i n s t h e   t e m p l a t e c o d e   w i t h s a m p l e t e s t I t   a l s o c o n t a i n s a   s e t U p ( ) a n d t e a r D o w n ( ) m e t h o d s I t   w i l l c o n t a i n t h e   t e s t s   t h a t a r e   g r o u p e d i n t o c l a s s e s
W A R N I N G Y o u r t e s t   m e t h o d s a l w a y s h a v e   t o   s t a r t w i t h « t e s t » ,   o t h e r w i s e y o u w o n ' t b e a b l e   t o   r u n t h e m
T h e   2   w a y s o f   w r i t i n g a   T e s t   C a s e ?
L a u n c h A p p   c l a s s U I T e s t s :   X C T e s t C a s e { l e t a p p =   X C U I A p p l i c a t i o n ( ) o v e r r i d e f u n c s e t U p ( )   { s u p e r . s e t U p ( ) a p p . l a u n c h ( ) } }
X C U I E L E M E N T   C l a s s   f u n c t a p ( ) f u n c d o u b l e T a p ( ) f u n c t w o F i n g e r T a p ( ) f u n c t a p ( w i t h N u m b e r O f T a p s : U I n t ,   n u m b e r O f T o u c h e s : U I n t ) f u n c p r e s s ( f o r D u r a t i o n : T i m e I n t e r v a l ) f u n c p r e s s ( f o r D u r a t i o n : T i m e I n t e r v a l ,   t h e n D r a g T o : X C U I E l e m e n t ) f u n c s w i p e L e f t ( ) f u n c s w i p e R i g h t ( ) f u n c s w i p e U p ( ) f u n c s w i p e D o w n ( ) f u n c p i n c h ( w i t h S c a l e : C G F l o a t ,   v e l o c i t y : C G F l o a t ) f u n c r o t a t e ( C G F l o a t ,   w i t h V e l o c i t y : C G F l o a t ) . . .
H o w   t o   T a p a   B u t t o n ? a p p . b u t t o n s [ " C l i c k   h e r e " ] . t a p ( )
H o w   t o   T y p e   T e x t i n t o a   T e x t F i e l d ? l e t t e x t F i e l d =   a p p . t e x t F i e l d s [ " F i r s t   N a m e " ] t e x t F i e l d . t a p ( ) t e x t F i e l d . t y p e T e x t ( " J o h n " )
H o w   t o   A s s e r t a n   E l e m e n t E x i s t s ?   X C T A s s e r t ( a p p . s t a t i c T e x t s [ " S o m e T e x t " ] . e x i s t s )
W e r e   R e a d y   t o   C r e a t e   O u r   F i r s t   T e s t   C a s e
F i r s t   T e s t   C a s e