testing with coffeescript
Post on 04-Jun-2018
243 Views
Preview:
TRANSCRIPT
-
8/13/2019 Testing With Coffeescript
1/60
-
8/13/2019 Testing With Coffeescript
2/60
-
8/13/2019 Testing With Coffeescript
3/60
!"#$ &'"($)*(
+&+,-. /.,.01123
4567*(8 9*7: ;
-
8/13/2019 Testing With Coffeescript
4/60
!"#$%&' )%$* +,--""./0%1$
!"#$%&'() +,-., /012 3%0425&4
655 %&'()7 %878%98:; ""2 ?0$ >8 %8#%":@18: A&)("@) )(8 #%&"%
A%&))84 #8%?&77&"4 "= )(8 #@>5&7(8%B 8C18#) ="% #8%7"405 @78 04: )(8 1078 "=
>%&8= D@")0)&"47 8?>8::8: &4 0%)&1587 "% %89&8A7;
E98%$ 8=="%) (07 >884 ?0:8 )" 847@%8 )(8 011@%01$ "= )(8 &4="%?0)&"4
#%8784)8:; F"A898%B )(8 &4="%?0)&"4 1"4)0&48: &4 )(&7 >""2 &7 7"5: A&)("@)
A0%%04)$B 8&)(8% 8C#%877 "% &?#5&8:; 8 (85: 5&0>58 ="% 04$ :0?0'87 10@78: "%
0558'8: )" >8 10@78: :&%81)5$ "% &4:&%81)5$ >$ )(&7 >""2;
E=84:& H""27 (07 84:809"%8: )" #%"9&:8 )%0:8?0%2 &4="%?0)&"4 0>"@) 055
1"?#04&87 04: #%":@1)7 ?84)&"48: &4 )(&7 >""2B ("A898% A8 1044")
'@0%04)88 )(0) )(&7 &4="%?0)&"4 &7 .--I 011@%0)8;
3&%7) G@>5&7(8:J ,-.,
K(&7 E:&)&"4 G@>5&7(8:J ,-.,
G@>5&7(8: >$ !"#$%& ())*+
-
8/13/2019 Testing With Coffeescript
5/60
!234" 5- +,&$"&$#
6124"A58:'?84)7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; &
L4)%":@1)&"4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; &&
!(0#)8% M48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .
!(0#)8% KA";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .N
!(0#)8% K(%88 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; OP
!(0#)8% 3"@% ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QR
S@??0%$ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; N,
-
8/13/2019 Testing With Coffeescript
6/60
6/7&,)4"8'"9"&$#
K(8 =&%7) #8%7"4 A(" 488:7 )(042&4' &7 /0?&8 T@?>85"AB A(" )""2 A(0) L
A%")8 04: 1%0=)8: &) A&)( 10%8 &4)" )(&7 U&4&H""2 $"@V%8 %80:&4' %&'() 4"A;
LV? =0&%5$ #%01)&78: 0) A%&)&4' )@)"%&057 >@) >%&4'&4' )"'8)(8% 0 50%'8 0?"@4)
"= )(8? &4)" 0 >""2 &7 7"?8)(&4' L (0984V) '") )(8 =&%7) &:80 0>"@); 3%"?
"==8%&4' )" #@>5&7( ?$ >""2 )(%"@'( E=84:& 04: #@))&4' @# A&)( ?$
D@87)&"47 )" 8:&)&4' 1"4)84) LV: "45$ '") )" (&? 0) )(8 507) ?&4@)8B 1(88%7;
88%V7 "4 ?8 A(84 $"@V%8 &4 W"4:"4;
M= 1"@%78 L 1"@5:4V) A%&)8 0 >""2 "4 !"==88S1%) A&)("@) ?84)&"4&4' /8%8?$
67(28407B )(8 1%80)"% 04: ?0&4)0&48% "= !"==88S1%); K(0427 ="% ?02&4'
A%&)&4' /090S1%) 8984 ?"%8 0A87"?8;
K">$ F"A0%)( 057" :878%987 0 (@'8 :"=) "= ?$ &?0'&40%$ 10#; F8 &7 )(8
#8%7"4 A(" 0'%88: )" :87&'4 )(8 /090S1%) G50$'%"@4:B )(8 >5"' )(0) L
50@41(8: A(&1( &4 ?$ "#&4&"4 '") ?8 )(&7 =0%; X8) 04")(8% #8%7"4 L 788? )"
"A8 0 >88%;
LV: 057" 5&28 )" )(042 0 A("58 1%0=) "= :8985"#8%7 A(" '") ?8 )" A(8%8 L 0?
)":0$ A&)( )(8&% >5"' #"7)7B 1"4=8%8418 )0527B )@)"%&057 04: )A88)&4'; K(8%8V7
7" ?04$ )(0) LV? >"@4: )" (098 ?&778: 0 =8A >@) )(8 40?87 &??8:&0)85$
7#%&4'&4' )" ?&4: &415@:8 G0@5 L%&7(B 6::$ M7?04&B T"> F0A287B U&1(085
F80#B Y04 Z855?04B G(&5 S)@%'8"4B E5&[0( U04"%B G8)8% !""#8%B G0@5 W80:8%
04: 0 A("58 5"0: "= ")(8%7 )""; E98%$)(&4' )(878 ="527 A%&)8 L %80: 04:
1"47@?8 %85&'&"@75$ 04: L 104V) &?0'&48 [@7) ("A ?@1( LV98 580%48: =%"?)(8?;
W07)5$ LV: 5&28 )" %0&78 ?$ '5077 )" T&1(0%: \@&12B A(" ?0:8 0 (@'8 8=="%) )"
58) ?8 0))84: ?$ =&%7) A8> :87&'4 1"4=8%8418 >012 A(84 L A07 ="@%)884; L
1580%5$ %8?8?>8% 1"?&4' ("?8 0=)8% )(0) 1"4=8%8418 04: %805&7&4' L A04)8:
)" >8 &49"598: &4 )(8 A8> A"%5: ="% 0 5"4' )&?8 )" 1"?8; L "=)84 A"4:8%
A(8%8 LV: >8 &= L (0:4V) ?0:8 &) )" )(0) 1"4=8%8418B 04: A&)("@) T&1( L :"4V)
)(&42 L A"@5: (098;
&
-
8/13/2019 Testing With Coffeescript
7/60
-
8/13/2019 Testing With Coffeescript
8/60
L4 !(0#)8% M48 A8V55 )028 0 5""2 0) :"A45"0:&4' 04: 78))&4' @# /07?&48B "@% )87)&4'
=%0?8A"%2 "= 1("&18; Z8V55 8C0?&48 )(8 #%&41 "= KYY`HYY 04: &4)%":@18 )(8 0## A8V55 >8
>@&5:&4'B 0 >0728) 7$7)8? ="% 04 81"??8%18 7)"%8; Z8V55 >8'&4 )" A%&)8 7"?8 )87)7 ="% )(8
1"%8 >0728) =@41)&"405&)$ 04: 5""2 0) ("A )" >87) &?#58?84) )(8 =80)@%87 A8 :87&'4;
-
8/13/2019 Testing With Coffeescript
9/60
K(%"@'("@) )(&7 >""2 A8a%8 '"&4' )" >@&5: 0 7?055 0##5&10)&"4 _ A(&1( A8a55
:8985"# )(%"@'( HYY _ A%&)&4' "@% )87)7 =&%7)B ="55"A8: >$ )(8 1":8 )" ?028
)("78 )87)7 #077 7@11877=@55$; K(8 0##5&10)&"4 A8a55 >8 >@&5:&4' &7
:85&>8%0)85$ >07&1 7" A8 104 1"4184)%0)8 "4 )(8 )87)7; L)a7 [@7) 0 7&?#58
7("##&4' >0728)b )(8 )$#8 $"@a: 788 "4 04$ )$#&105 81"??8%18 7)"%8; Z8a%8
'"&4' )" A%&)8 )(8 1":8 )" ?040'8 )(&7 >0728)J 0::&4'B 8:&)&4'B :858)&4'
&)8?7B 04: )(84 )(8 1(812"@) #%"1877B 1051@50)&4' )(8 )")05 1"7)B 0##5$&4'
:&71"@4)7 04: 7" "4;
E98%$ "48 "= )(878 =80)@%87 A&55 (098 )87)7 A%&))84 !"#$%" A8 A%&)8 )(8 1":8;
K(8 >80@)$ "= :"&4' )(&7B 07 La55 :8?"47)%0)8B &7 )(0) >$ A%&)&4' )87)7 =&%7)B
04: )(84 A0)1(&4' )(8? =0&5B $"@ '8) 0 7)8# >$ 7)8# '@&:8 "4 ("A )"
&?#58?84) )(8 =80)@%8; L4 )(&7 78478B )(8 )87)7 A&55 4") "45$ &?#%"98 )(8
D@05&)$ "= )(8 1":8B >@) )(8$a55 057" ?028 $"@ 1"47&:8% )(8 :87&'4 ?"%8;
E98%$)&?8 $"@ %@4 0 )87)B $"@a55 '8) 04 8%%"% ?8770'8; X"@ 104 )(84 0))84:
)" )(0) 8%%"%B =&C &)B %8%@4 )(8 )87)7 04: 788 0 :&==8%84) 8%%"%; !"4)&4@8 &4 )(&7
=07(&"4 @4)&5 $"@% =@41)&"4 &7 &?#58?84)8:;
&"'(' *%" *+'$ $#(", %"#"%%"- ($ *' .'/"0'12 /*%(304+*%+5 3, (6" 74!5 $, 7*3+'
0$884,3(59 :, (63' !$$; :*8/+" 04: +3!; L 78) ?&48 7)%@1)@%8 @# 0 >&) :&==8%84)5$J
"))*
+,#&*
,
https://github.com/pivotal/jasmine/downloadshttps://github.com/pivotal/jasmine/downloads -
8/13/2019 Testing With Coffeescript
10/60
L :"4a) 5&28 )" (098 -./00%% 04: -1# =&587 &4 )(8 70?8 ="5:8%B 7" L 78#0%0)8
)(8? "@); K(&7 ="5:8% 7)%@1)@%8 &7 >$ 4" ?8047 =&C8:b $"@ 7("@5: @78 0
7)%@1)@%8 )(0) 7@&)7 $"@;
H8="%8 A8 '" "4)" A%&)&4' 7"?8 )87)7B L A04) )" >%&8=5$ )052 0>"@) ?$
#%"1877 ="% 1"?#&5&4' !"==88S1%) =&587; 65)("@'( 7"?8 5&>%0%&87 7@##"%)
:&%81)5$ )87)&4' !"==88S1%) =&587B /07?&48 :"874a)B 04: 8C#81)7 /090S1%)
=&587; K(8 0## "= 1("&18 L @78 ="% 1"?#&50)&"4 &7 W&98T85"0:; L)a7 1@%%84)5$7)0>58 "4 U01 04: &4 05#(0 "4 Z&4:"A7B 7" 05)("@'( &)a7 4") D@&)8 )(8%8 "4
Z&4:"A7 $8) &) &7 1"?&4'; K(&7 5&))58 0## &7 0A87"?8B &) 7&)7 (&::84 0A0$ 04:
0@)"?0)&1055$ 1"?#&587 !"==88S1%) =&587 &4)" )(8&% /S 1"@4)8%#0%)7
0@)"?0)&1055$ ]&) 057" 7@##"%)7 ?04$ ")(8% =&58 )$#87^; 65"4' A&)( )(0)B &) A&55
057" 0@)"?0)&1055$ %8=%87( $"@% >%"A78% A&4:"AB ?804&4' $"@ 104 7098 $"@%
2-./00%% =&58B 04: &)a7 &??8:&0)85$ 1"?#&58: 04: $"@% )87)7 %@4; G8%=81); L=
$"@a: %0)(8% 7)&12 )" )(8 1"??04: 5&48B )(8 !"==88S1%) :"1@?84)0)&"4 (07
#)%.*
3 ./(),5%+ 2-./00%% #)%. 0,5%# 6
#7.3 ./(),5%+ 2-./00%% #7. 0,5%# 6
5,8*
1"#(,9%:;-;-)%.-./00%%
3 /&=%7 #)%. 0,5%# 6
>)%.?@99%7-=&(5
#7.*
!"#$%&-./00%%
'&%(-./00%%
3 /&=%7 #7. 0,5%# 6
O
http://livereload.com/http://livereload.com/ -
8/13/2019 Testing With Coffeescript
11/60
7"?8 8C185584) &4="%?0)&"4 "4 1"?#&5&4'; K028 0 5""2 0) )(8 A"&.=
1"??04: )" '8) )(&4'7 1"?#&5&4' "4 7098;
M48 ")(8% )(&4' )" 4")8 &7 )(0) >$ :8=0@5)B !"==88S1%) A&55 A%0# 04
04"4$?"@7 =@41)&"4 0%"@4: )(8 1"?#&58: /090S1%)J
F"A898%B A(0) )(&7 :"87 &7 ?804 )(0) 4"48 "= $"@% 90%&0>587 0%8 8C#"78:
'5">055$; K(&7 &7 '848%055$ 0 '"": )(&4'B >@) ="% @7 A8 488: )" ?028 7@%8 04$
1507787 A8 :" A%&)8 ]A8a55 >8 A%&)&4' )A"B !"#$%& 04: '&%( ^ 0%8 8C#"78:
'5">055$B 7" A8 104 @78 )(8? &4 ")(8% =&587B 04: "@% )87) =&587 &4 #0%)&1@50%;
K(8%8a7 )A" A0$7 )" '" 0>"@) )(&7; Z8 104 8&)(8% 8C#5&1&)5$ 8C#"78 )(8
1507787B >$ 1%80)&4' 0 48A #%"#8%)$ "4 )(8 '5">05 A,9+/A ">[81)J
M%B A(84 1"?#&5&4' $"@% !"==88S1%)B $"@ 488: )" )855 &) 4") )" A%0# )(8
04"4$?"@7 =@41)&"4 0%"@4: $"@% 1":8; L= $"@a%8 1"?#&5&4' &4 )(8 )8%?&405B
[@7) 0:: ::8"7% B "% :8 "4 )(8 84: "= $"@% 1"??04:; U"7) 9&7@05 1"?#&58%7B
&415@:&4' )(8 0="%8?84)&"48: W&98T85"0:B 1"4)0&4 04 "#)&"4 ="% $"@ )"
840>58 >0%8 1"?#&5&4'; K(&7 &7 )(8 "#)&"4 La98 1("784 )" )0284 &4 )(&7 >""2B
#%&?0%&5$ )" 09"&: (09&4' )" (098 )(0) 8C)%0 5&48 0) )(8 84: &4 8C0?#587B >@)
=885 =%88 )" @78 )(8 =&%7) ?8)(": &= $"@ %0)(8%; L #%8=8% &) &4 0 5") "= 7&)@0)&"47B
87#81&055$ &= $"@ 0%8 :8=&4&4' 0 5") "= 90%&0>587 04: A04) 98%$ 7)%&1) 1"4)%"5
B!"#$%&'# BC 3
!!"#$% '#()*+,- ./ '#-, 0,%,
6C-."55B %(&) CD
* =E ,+ +F+%0,9%G/@7G.5"##G=%7%F , +%0,9% /@7 $-.)) =%7% * *=EH
* =E ,+ +F7,I=&G"&G&=%G8/&&/(F , 7,I=& "& &=% 8/&&/( /* *=EH
A,9+/A- !"#$%& J !"#$%&
Q
-
8/13/2019 Testing With Coffeescript
12/60
"98% A(0) &7 8C#"78: '5">055$B >@) &4 )(&7 1078 )(0)a7 4") 7" ?@1( "= 04
&77@8;
-
8/13/2019 Testing With Coffeescript
13/60
-
8/13/2019 Testing With Coffeescript
14/60
S"?8 #8"#58 1(""78 )" (098 [@7) "48 7#81 =&58 ="% )(8&% 84)&%8 0##5&10)&"4
04: @78 +%#.7,8% >5"127 )" "%'04&78 )87)7 A&)(&4 )(0) "48 =&58; G8%7"4055$B
La? 0 =04 "= 288#&4' )(&4'7 "%'04&78: A&)(&4 ?@5): =&587; K(8 80'8%_8$8:
0?"4'7) $"@ A&55 %805&78 L (0984a) ?0:8 0 7#81 =&58 ="% ?$ '&%( 15077; Z8a%8
5809&4' )(0) ="% 4"AB 04: 1"4184)%0)&4' "4 7"?8 >07&1 7#817 ="% "@% !"#$%&
15077;
U"7) )87)7 A&55 488: 7"?8 70?#58 :0)0 )" A"%2 A&)(; X"@ ?&'() (098 (80%:
"= )(878 07 #3>(4%"' &4 ")(8% )87)&4' =%0?8A"%27; L )84: )" 7)"%8 ?$ =&C)@%87
&4 0 [09071%) ">[81)B A(&1( L @7@055$ 1055 &%#&;
/07?&48 #%"9&:87 @7 A&)( 8%0/7%R".= b 0 ?8)(": &47&:8 "@% +%#.7,8% >5"12
A(&1( &7 %@4 >8="%8 898%$ )87); Z8 104 @78 )(&7 )" 78) @# "@% )87) :0)0J
La98 1%80)8: 0 48A !"#$%& B 04: 0 70?#58 '&%( ]"48 L A&7( L "A48:d^ )(0) A8
104 0:: )" )(8 >0728); 6 50%'8 ?0["%&)$ "= "@% )87)7 A&55 %85$ "4 )(8 >0728)(09&4' 04 &)8? &4; T0)(8% )(04 %8#5&10)&4' 1":8B A8 104 0:: )(0) &4)" "@%
8%0/7%R".= J
&%#& J 36
8%0/7%R".= 0,
&%#&-8"#$%& J #12 !"#$%&BC
&%#&-,&%( J #12 '&%(
-
8/13/2019 Testing With Coffeescript
15/60
-
8/13/2019 Testing With Coffeescript
16/60
K0125&4' )(8 =&%7) )87)B (8%8a7 ("A &) A"%27J
.; g8) )(8 1@%%84) 0?"@4) "= &)8?7 &4 )(8 >0728) ])(8 4@?>8% "=
:&==8%84) &)8?7B 4") )(8 )")05 0?"@4) "= &)8?7^
,; 6:: "@% )87) &)8?
O; EC#81) )(8 :&7)&41) 1"@4) )" 8D@05 )(8 #%89&"@7 905@8B #5@7 .
K(8 781"4: )87) A"%27 ?@1( )(8 70?8J
.; g8) )(8 D@04)&)$ "= &)8?7 &4 )(8 >0728) A&)( 04 &: "= 0728);O; EC#81) )(8 48A D@04)&)$ )" 8D@05 )(8 #%89&"@7 905@8B #5@7 .;
F8%8 A8 ?88) /07?&48a7 =&%7) ?0)1(8%B &/RZ@"5 ; Z8 1055 %M)%.&BC h #077&4'
&) 0 905@8 h 04: )(84 @78 &/RZ@"5 )" 1"?#0%8 &); K(8%8 0%8 ?04$ ?"%8 )$#87
"= 1(8127 ]"% 0778%)&"47^ A8 104 #8%="%?;
8 8C#81)8: _ A8
(0984a) A%&))84 04$ 1":8 $8)d X"@ 7("@5: (098 )A" =0&5@%87J "48 ="% 801(
7#81 A8 A%")8; H")( 7("@5: 70$J
K(&7 &7 04 807$ 8%%"%b A8a98 4") 1%80)8: "@% !"#$%& 15077 $8); W8)a7 =&C &);
F80: "98% )" #7.*!"#$%&-./00%% 04: 0:: [@7) "48 5&48J
-
8/13/2019 Testing With Coffeescript
17/60
W"0: @# '&%(-./00%% 04: 0:: )(8 "48 5&48 0'0&4J
T8?8?>8%B )(8 #%"1877 "= HYY &7 )" [@7) =&C )(8 8%%"% $"@a%8 '&984B 4") )"
A%&)8 1":8 )" =&C 898%$)(&4' 0) "418; H$ >@&5:&4' @# "@% 1":8>078 7)8# >$
7)8# A8 104 847@%8 )(0) )(8 A("58 )(&4' #8%="%?7 07 A8 8C#81) &) )";
T@44&4' &) 0'0&4B A8 '8) 0 48A 8%%"%J
W8)a7 A%&)8 "@% "++BC ?8)(":;
Z8a55 488: 04 0%%0$ )" 7)"%8 055 "@% &)8?7 04: )(84 )(8 "++ ?8)(": A&55 0::
)(8? )" )(8 0%%0$; T8?8?>8%B A8a%8 4") )%$&4' )" A%&)8 )(8 A("58
0##5&10)&"4; Z8a%8 "45$ )%$&4' )" =&C )(8 8%%"% A8a98 [@7) '"); U$ !"#$%& 15077
4"A 5""27 5&28 )(&7J
?%0%7%9.%R77/7\ '&%( &) #'% +%0,9%+
$-.)) '&%(
QL)%R77/7\ ]81%.& 79:35;,4< 035 1# (,40#- =3--=
$-.)) !"#$%&
,&%(#\ ^_
+,#&,9.&O/@9&\ 80@)$ "=
(09&4' )87)7; M@% )87)7 A&55 (&'(5&'() )(8 =50A7 07 A8 #%"'%877 A&)( )(8
:8985"#?84) "= "@% 0##5&10)&"4;
T8=%87( )(8 >)%.?@99%7-=&(5 =&58 04: $"@ 7("@5: 788 )(0) )(8 =&%7) 7#81
#07787d
F"A898%B [@7) >810@78 &) #07787B &) :"874a) ?804 )(0) &)a7 1"?#58)8; 67 A8
1"4)&4@8 "4 :8985"#&4' )(8 0##5&10)&"4B A8a55 788 &77@87 )@%4 @# 04: A8a55
488: )" %8=01)"% "@% )87)7 04: &?#58?84)0)&"4 1":8; Y8985"#&4' A&)( )87)7
&7 =04)07)&1 ="% )(&7 %807"4b A8 104 807&5$ %8=01)"% A&)("@) 1"418%4 )(0) A8a%8
>%802&4' 04$)(&4';
S"B 58)a7 )028 0 5""2 0) A(0) =0&57 &4 "@% 781"4: 7#81J
Z8 4"A 488: )" )028 0 7)8# >012 04: )(&42 0>"@) "@% &?#58?84)0)&"4; L4"@% ,&%(# 0%%0$B ("A 0%8 A8 '"&4' )" 7)"%8 )(8 &)8?7j L7 &) A"%)( 7)"%&4' )(8
84)&%8 ">[81)j Z(0) 0>"@) )(8 D@04)&)$j
L) ?0287 78478 )" 7)"%8 &4 )(8 &)8? &: 04: D@04)&)$b A8a55 "45$ 488: )"
%8=8%8418 &)8?7; S"B 58)a7 8:&) )(8 "++BC ?8)(": )" %8=581) )(&7J
`,&%(#-)@#= ,&%(
`+,#&,9.&O/@9& 33
`&/&"5O/@9& 33
QL)%R77/7\ ]81%.& 79:35;,4< 035 1# (,40#- =6,4>$314*4"=
..
-
8/13/2019 Testing With Coffeescript
19/60
H8="%8 A8 %8%@4 )(8 )87)7B 4"A A8 0=)8% %8=8%841&4' ,&%(-,+ B 04: 7" =0% 055
A8a98 :8=&48: ="% "@% '&%( 15077 &7J
L) (07 4" &:80 %&'() 4"A A(0) ,&%(-,+ &7; K" :" )(&7 A8 7&?#5$ 488: )"
&?#58?84) )(8 1"47)%@1)"% ?8)(": ="% "@% '&%( 15077J
F8%8a7 0 (04:$ !"==88S1%) 7("%)1@)J &= $"@a%8 @7&4' )(8 1"47)%@1)"% ?8)(":
[@7) )" 78) #%"#8%)&87B %0)(8% )(04 :"J
X"@ 104 7&?#5$ 7("%)84 &) )"J
"++\ 4&%156 8".#%&%9: 0,
`,&%(#-)@#=B3
F,&%(G,+F / ,&%(-,+PFZ@"9&,&LF / Z@"9&,&L
6C
`+,#&,9.&O/@9& 33
`&/&"5O/@9& 33
$-.)) '&%(
./9#&7@.&/7\ 4;&
-
8/13/2019 Testing With Coffeescript
20/60
810@78 %&'() 4"AB A8 0%84a) @#:0)&4' )(8 D@04)&)$ &= )(8
&)8? &7 05%80:$ &4 )(8 >0728); W8)a7 =&C )(0); K(&7 A&55 %8D@&%8 0 5&))58 ?"%8
1":8J
./9#&7@.&/7\ 4; ,-Z@"9&,&L &! ,-,&%(G,+ &) ,&%(G,+
!.-)1
RM)%.&%+ ; &/ %Z@"5 E -
"++\ 4&%156 8".#%&%9: 0,
&! `,&%(RM,#'9!"#$%&B,&%(-,+C
.@7'&%(a/. J `I%&'&%(a/."&,/9 ,&%(-,+
`,&%(#^.@7'&%(a/._-Z@"9&,&L 3+ Z@"9&,&L
1-)1
`,&%(#-)@#=B3
.O
-
8/13/2019 Testing With Coffeescript
21/60
T8=%87( "@% )87)7 04: $"@a55 788 )(0) )(8$ 055 #077;
L ("#8 $"@a%8 >8'&44&4' )" 788 )(8 A0$ :8985"#8%7 '8) (""28: "4
:8985"#&4' A&)( )87)7; X"@a55 4")&18 A8 (0984a) 1%80)8: 04$ ="%? "= =%"4) 84:
="% "@% 7$7)8? $8); Z8a%8 4") >8&4' :&7)%01)8: >$ )(8 gkLB >$ 087)(8)&17 "%")(8% @4&?#"%)04) ?&4@)&08; K(0427 )" "@% )87)7B A8 104 #@) )(0) )" "48
7&:8 04: 1"4184)%0)8 7"585$ "4 "@% 0##5&10)&"4a7 5"'&1;
L4 1(0#)8% )A" A8a55 1"4)&4@8 A&)( ?"%8 )87)&4' 04: 5""2 0) %8=01)"%&4' ?"%8
"= "@% 1":8;
F,&%(G,+F / ,&%(-,+P
FZ@"9&,&LF / Z@"9&,&L
6C`+,#&,9.&O/@9& 33
`&/&"5O/@9& 3+ Z@"9&,&L
,&%(RM,#'9!"#$%&\ 4&%15= ./@9& &! ,-,&%(G,+ &) ,&%(G,+
./@9& 33
!.-)1
.Q
-
8/13/2019 Testing With Coffeescript
22/60
L4 !(0#)8% KA" A8V55 8C0?&48 %8=01)"%&4' "@% 8C&7)&4' &?#58?84)0)&"4 04: ("A )87)7 1"?8 &4
&41%8:&>5$ @78=@5; Z8V55 0>7)%01) 0A0$ 7"?8 =@41)&"405&)$ &4)" (85#8% ?8)(":7B A%&)8 )87)7 ="%
)("78 ?8)(":7 04: )028 0 5""2 0) 0 =8A 48A ?0)1(8%7 &4 /07?&48; Z8V55 )(&42 )(%"@'( ("A )(8
?0&4 #0%) "= "@% 0##5&10)&"4 A"%27 04: ("A >87) )" &?#58?84) &);
-
8/13/2019 Testing With Coffeescript
23/60
7)%01) =@41)&"405&)$ &4)" 0 (85#8% ?8)(":
04: A%&)8 )87)7 >8="%8 1":8B A(&1( &7 ("A L #%8=8% )" A"%2B >@) "=)84 L 84: @#
:"&4' )(8 %898%78; L4 04 &:805 A"%5:B )(8 84)&%8 0##5&10)&"4 A&55 >8 >@&5) >$
7#"))&4' #")84)&05 (85#8% ?8)(":7 04: A%&)&4' )87)7 !"#$%" &?#58?84)&4';
L 5&28 )" 0:: 055 )(8 (85#8% ?8)(": )87)7 &4 )(8&% "A4 +%#.7,8% >5"12 04:
)(84 487) )(8? &4 )(8%8; S" ?$ )87)7 ="% I%&[@"9&,&L '" @4:8% )(8
+%#.7,8% >5"12 ="% ?$ !"#$%& 15077 5&28 7"J
I%&[@"9&,&L\ 4&%15=&
-
8/13/2019 Testing With Coffeescript
24/60
-
8/13/2019 Testing With Coffeescript
25/60
S"B "418 0'0&4B L A%&)8 "@) 7"?8 >07&1 )87)7 )" 1(812 )(8?J
!'> , `,&%(#
>1%"># ./@9& &! ,-,&%(G,+ &) ,&%(G,+
./@9& 33!.-)1
+%#.7,8% F,&%(RM,#'9!"#$%&F P 0,
,& F#=/@5+ 7%&@79 0"5#% ,0 ,&%( ,+ +/%# 9/& %M,#&F P 0,
%M)%.&B&%#&-8"#$%&-,&%(RM,#'9!"#$%&B EcdXX CC-&/!%b"5#LBC
,& F#=/@5+ 7%&@79 &7@% ,0 ,&%( ,+ +/%# %M,#&F P 0,
%M)%.&B&%#&-8"#$%&-,&%(RM,#'9!"#$%&B ECC-&/!%Q7@&=LBC
,& F#=/@5+ 7%&@79 0"5#% ,0 I,N%9 "9 ,9N"5,+ "7I@(%9&P
#@.= "# " #&7,9IF P 0,
%M)%.&B&%#&-8"#$%&-,&%(RM,#'9!"#$%&B F=%55/F CC-&/!%b"5#LBC
+%#.7,8% FI%&'&%(a/."&,/9F P 0,
,& F#=/@5+ 7%&@79 &=% 5/."&,/9 /0 ,&%( A=%9 I,N%9 N"5,+,+F P 0,
%M)%.&B&%#&-8"#$%&-I%&'&%(a/."&,/9B ECC-&/RZ@"5 8))8%B 7@%85$j
W8)a7 )028 0 5""2 0) 1051@50)&4' )(8 )")05 1"7)7; K(8 )(%88 90%&04)7 A8 488: )"
1(812 (8%8 0%8J
.; !051@50)&4' )(8 1"7) ="% 0 7&4'58 &)8?
,; !051@50)&4' )(8 1"7) ="% 0 7&4'58 &)8? A&)( 0 D@04)&)$ '%80)8% )(04 .;
O; !051@50)&4' )(8 1"7) ="% ?@5): &)8?7 A&)( D@04)&)&87 '%80)8% )(04 .;
67 $"@a: 8C#81)B )(8 )87)7 0%8 98%$ 7&?#58 ]07 $"@a55 =&4: ?"7) )87)7 0%8 h
04$ 1"?#58C )87)7 "=)84 7("@5: >8 7#5&) @#^J
&%#&-8"#$%&-"++B&%#&-,&%(P ; C
%M)%.&B&%#&-8"#$%&-&/&"5O/@9&C-&/RZ@"5 )7,/7O/@9&Y"5 3 ;
,& F#=/@5+ @)+"&% +,#&,9.& ./@9& A=%9 "++,9I 87"9+ 9%A
,&%(F P 0,
)7,/7O/@9&Y"5 J &%#&-8"#$%&-+,#&,9.&O/@9&
&%#&-8"#$%&-"++B&%#&-,&%(P ; C
%M)%.&B&%#&-8"#$%&-+,#&,9.&O/@9&C-&/RZ@"5 )7,/7O/@9&Y"5 3 ;
,& F#=/@5+ 9/& @)+"&% +,#&,9.& ./@9& A=%9 "++,9I (/7% /0 "9
,&%( &="& "57%"+L %M,#F P 0,
&%#&-8"#$%&-"++B&%#&-,&%(P ; C
)7,/7O/@9&Y"5 J &%#&-8"#$%&-+,#&,9.&O/@9&
&%#&-8"#$%&-"++B&%#&-,&%(P E C
%M)%.&B&%#&-8"#$%&-+,#&,9.&O/@9&C-&/RZ@"5 )7,/7O/@9&Y"5
+%#.7,8% F."5.@5"&,9I &/&"5 ./#&F P 0,
,& F#=/@5+ ."5.@5"&% &=% ./#& 0/7 " #,9I5% ,&%( ,9 &=%
8"#$%&F P 0,
,.
-
8/13/2019 Testing With Coffeescript
29/60
K(8 &?#58?84)0)&"4 &7 807$ 84"@'( (8%8; K(8 =&%7) 8%%"% A&55 >8 )(8 "5:
=09"@%&)8 a?8)(": 1051@50)8K")05]^ &7 @4:8=&48:aB 04: "418 $"@a98 =&C8: )(0)
055 A8 488: )" :" &7 5""# "98% 898%$)(&4' &4 )(8 ,&%(# 0%%0$B 1051@50)8 )(8
1"7)B 04: 288# 0 %@44&4' )")05J
3&4055$B A8 488: )" )052 0>"@) %8?"9&4' 04 &)8?; K(&7 &7 )(8 507) >&) "=
=@41)&"405&)$ A8a55 0:: >8="%8 7)"##&4' 04: %8=01)"%&4'B >@) )(8 >0: 48A7 &7
&)a7 01)@055$ #%8))$ 1"?#58C )" :"; K(&7 &7 >810@78 )(8%8a7 ?"%8 )(04 "48
#"77&>&5&)$ )" :805 A&)(;
%M)%.&B&%#&-8"#$%&-."5.@5"&%Q/&"5BCC-&/RZ@"5 X&5&)&87J
.; L= )(8 D@04)&)$ #0778: &4 &7 5877 )(04 )(8 D@04)&)$ &4 )(8 >0728)B
%8?"98 )(8 78) D@04)&)$ "= 04 &)8? =%"? )(8 H0728);
,; L= &)a7 '%80)8% )(04 "% 8D@05 )" )(8 D@04)&)$ &4 )(8 >0728)B 1055
7%(/N%T55 ;
L4 1":8 ="%?B )(0) 5""27 5&28 7"J
L) 5""27 1"?#58CB >@) &4 %805&)$ &)a7 4"); Z8 104 %8=01)"% )(&7 1":8 )" ?028 &)
?"%8 %80:0>58B A(&1( A8a55 :" 7("%)5$;
K" 7@??0%&78B (8%8a7 )(8 7%(/N% ?8)(":J
&! Z@"9&,&L &) F"55F
7%(/N%T55 ,&%(G,+
1-)1
5/. J `I%&'&%(a/."&,/9 ,&%(G,+
,&%( J `,&%(#^5/._
&! ,&%(-Z@"9&,&L *+ Z@"9&,&L
7%(/N%T55 ,&%(G,+
1-)1
7%(/N%[@"9&,&L Z@"9&,&LP 5/.
7%(/N%\ 4&%15= !.-)1 &! #'% `,&%(RM,#'9!"#$%& ,&%(G,+
7%(/N%T55 J B,&%(G,+C +,
, J `I%&'&%(a/."&,/9 ,&%(G,+
`,&%(#-#)5,.%B,P, 3 ; C
,R
-
8/13/2019 Testing With Coffeescript
34/60
S"B A8a98 A%&))84 0 >07&1 &?#58?84)0)&"4B 04: 0) )(&7 #"&4) A8a98 '") ,O
7#817B 055 "= A(&1( #077; 6) 0 7)0'8 5&28 )(&7 L 5&28 )" )028 0 5""2 "98% A(0)
La98 A%&))84 7" =0%B 07 $"@ A&55 480%5$ 05A0$7 >8 0>58 )" 7#") >&)7 "= 1":8 )(0)
$"@ 104 &?#%"98; H810@78 A8 (098 0 1"?#%8(847&98 78) "= 7#817B &)a7 807$
)" 788 &= 7"?8 %8=01)"%&4' A8 #8%="%? >%8027 7"?8)(&4';
/@?# &4)" 8"#$%&-./00%% 04: 7104 )(8 =&58B 5""2&4' "@) ="% #50187 A(8%8 A8
104 )&:$ )(&4'7 @#;
K(8 =&%7) )(&4' L 7#") &7 "4 5&48 .,J
7%(/N%[@"9&,&L J BZ@"9&,&LP ,&%(G5/.C +,
`,&%(#^,&%(G5/._-Z@"9&,&L 0+ Z@"9&,&L
&! Z@"9&,&L &) F"55F
7%(/N%T55 ,&%(G,+
1-)1
5/. J `I%&'&%(a/."&,/9 ,&%(G,+
,&%( J `,&%(#^5/._
&! ,&%(-Z@"9&,&L *+ Z@"9&,&L
7%(/N%T55 ,&%(G,+
1-)1
7%(/N%[@"9&,&L Z@"9&,&LP 5/.
`,&%(#-)@#=B3
F,&%(G,+F / ,&%(-,+P
FZ@"9&,&LF / Z@"9&,&LP
F,&%(F / ,&%(
6C
,P
-
8/13/2019 Testing With Coffeescript
35/60
L)a7 "45$ 0 7?055 1(04'8B >@) 58)a7 %8?"98 )(8 >%0128)7B >%0187 04: 1"??07B
04: ?028 "@% 1":8 5877 /090 04: ?"%8 !"==88; Z8 104 :858)8 )(8? 04:
A0)1( "@% )87)7 #077J
6 '"": 7)0%); La? %8055$ 4") "98% )(8 ?""4 A&)( ("A L &?#58?84)8: )(8
7%(/N% ?8)(":; L= $"@ )028 0 5""2 &)a7 #%8))$ ?877$J
`,&%(#-)@#=
F,&%(G,+F / ,&%(-,+
FZ@"9&,&LF / Z@"9&,&L
F,&%(F / ,&%(
7%(/N%\ 4&%15= !.-)1 &! #'% `,&%(RM,#'9!"#$%& ,&%(G,+
7%(/N%T55 J B,&%(G,+C +,
, J `I%&'&%(a/."&,/9 ,&%(G,+
`,&%(#^,_ + #"--
`@)+"&%'&%(#BC
7%(/N%[@"9&,&L J BZ@"9&,&LP ,&%(G5/.C +,
`,&%(#^,&%(G5/._-Z@"9&,&L 0+ Z@"9&,&L
&! Z@"9&,&L &) F"55F
7%(/N%T55 ,&%(G,+
1-)1
5/. J `I%&'&%(a/."&,/9 ,&%(G,+
,&%( J `,&%(#^5/._
&! ,&%(-Z@"9&,&L *+ Z@"9&,&L
7%(/N%T55 ,&%(G,+
,f
-
8/13/2019 Testing With Coffeescript
36/60
L :"4a) 24"A 0>"@) $"@B >@) )(0) 5""27 #%8))$ ?877$; W8)a7 &498%) )(8
1"4:&)&"405 A(8%8 A8 1(812 ="% D@04)&)$; K(0)a7 807&5$ :"48J
L 104 :" )(&7 &4 =@55 1"4=&:8418b 0 D@&12 %8%@4 "= )(8 )87)7 7("A )(8$ 7)&55
#077; La? 057" 4") (0##$ A&)( )(&7 1"4:&)&"405J
K" ?8B )(0)a7 )(8 2&4: "= 1"4:&)&"405 La: %8=01)"% &4)" 0 "48 5&48 )8%40%$B >@)
!"==88S1%) :"874a) (098 04 8C#5&1&) )8%40%$ "#8%0)"%; Z(0) A8 104 :"
("A898% &7 #@) )(&7 "4)" "48 5&48B A(&1( L )(&42 &7 =&48 &4 )(&7 1078J
1-)1
7%(/N%[@"9&,&L Z@"9&,&LP 5/.
&! Z@"9&,&L &)#% F"55F
5/. J `I%&'&%(a/."&,/9 ,&%(G,+
,&%( J `,&%(#^5/._
&! ,&%(-Z@"9&,&L *+ Z@"9&,&L
7%(/N%T55 ,&%(G,+
1-)1
7%(/N%[@"9&,&L Z@"9&,&LP 5/.
1-)1
7%(/N%T55 ,&%(G,+
&! ,&%(-Z@"9&,&L *+ Z@"9&,&L
7%(/N%T55 ,&%(G,+
1-)1
7%(/N%[@"9&,&L Z@"9&,&LP 5/.
,i
-
8/13/2019 Testing With Coffeescript
37/60
6'0&4B 0 %8%@4 "= )(8 )87)7 7("A7 0 #077&4' 78) "= 7#817; K(8 0>&5&)$ )"
%8=01)"% 5&28 )(&7 A&)( 1"4=&:8418 &7 [@7) '%80);
K(8 =&405 #&818 "= 1":8 L A04) )" D@&125$ %8=01)"% &7J
L4 )(8 1078 A(8%8 L @78 ,0 , ,#9& 9@55 La: %0)(8% @78 !"==88S1%)a7
@95%##J
64: 0'0&4 )(8 7#817 7("A ,O #07787B 7" A8a%8 055 78);
&! ,&%(-Z@"9&,&L *+ Z@"9&,&L %(1# 7%(/N%T55 ,&%(G,+ 1-)1
7%(/N%[@"9&,&L Z@"9&,&LP 5/.
@)+"&%'&%(#\ 0,
9%AT77 J ^_
!'> , `,&%(#
&! , &)#% #"--
9%AT77-)@#= ,
`,&%(# J 9%AT77
@)+"&%'&%(#\ 0,
9%AT77 J ^_
!'> , `,&%(#
@95%## , &) #"--
9%AT77-)@#= ,
`,&%(# J 9%AT77
O-
-
8/13/2019 Testing With Coffeescript
38/60
0728); 655 )(0) '&%(-./00%% 1"4)0&47
&7J
L A"@5: 5&28 )" A%&)8 7"?8 ?8)(":7 )" @#:0)8 04 &)8?a7 #%"#8%)&87; T0)(8%
)(04 A%&)8 &4:&9&:@05 78))8%7 04: '8))8%7B L 0? '"&4' )" A%&)8 "48 =@41)&"4
A(&1( )0287 04 ">[81) "= #%"#8%)&87 04: 905@87B 04: "98%A%&)87 )(8 :8=&48:
"487; 3&%7) )("@'(B 58)a7 A%&)8 )87)7d
!%80)8 )(8 =&58 "))*#)%.*'&%(>)%.-./00%% B 04: 0:: )(&7 5&48 )"
>)%.?@99%7-=&(5 J
3&%7)B L A04) )" 78) @# )(8 )87)&4' >"")7)%0# 1":8B [@7) 5&28 >8="%8J
)%.-1#F ,* *#.7,)&H
+%#.7,8% F'&%(F P 0,
&%#& J 36
8%0/7%R".= 0,
&%#&-,&%( J #12 '&%( ; P FS"I,. S/@#%F P F>@)%7 "A%#/(%F P
X@)%7 "A%#/(%F
,& F#=/@5+ 9/& 8% "85% &/ @)+"&% &=% 'g )7/)%7&LF P 0,
&%#&-,&%(-@)+"&%
F&,&5%F / FQ=% S"I,. S/@#%F
F,+F / dW
%M)%.&B&%#&-,&%(-&,&5%C-&/RZ@"5 FQ=% S"I,. S/@#%F
%M)%.&B&%#&-,&%(-,+C-&/RZ@"5 ;
RM)%.&%+ fS"I,. S/@#%f &/ %Z@"5 fQ=% S"I,. S/@#%f -
@)+"&%\ 4'A%): 0,
!'> $%L '! /)
&! ` ^$%L_ B .#< $%L &)#% F,+F
` ^$%L_ + /)^$%L_
O,
-
8/13/2019 Testing With Coffeescript
40/60
K(&7 7("@5: >8 84"@'( )" '8) "@% )87)7 #077&4';
L= $"@ )028 0 5""2 0) )(8 &?#58?84)0)&"4 ="% @#:0)8B $"@ 104 788 &) #%8984)7
)(8 ?":&=&10)&"4 "= )(8 ,+ 0))%&>@)8;
Z(0) &= &4 )(8 =@)@%8 A8 (098 ?"%8 "= )(878 #%")81)8: =&85:7j L) A"@5: >8
7&55$ )" 288# 0::&4' )" )(8 1"4:&)&"405 5&28 7"J
S" A($ :"4a) A8 0:: &4 0 A0$ )" 0:: #%")81)8: =&85:7j W8)a7 A%&)8 7"?8
)87)7J
&! ` ^$%L_ B .#< $%L &)#% F,+F .#< $%L &)#% F0//F .#< $%L &)#%
F8"7F
+%#.7,8% F)7/&%.&%+ 0,%5+#F P 0, ,& F#=/@5+ 8% "85% &/ "++ " 9%A )7/&%.&%+ 0,%5+ &/ &=%
"77"LF P 0,
)7,/7O/@9& J &%#&-,&%(-)7/&%.&%+b,%5+#-5%9I&=
&%#&-,&%(-"++h7/&%.&%+ F+%#.F
%M)%.&B&%#&-,&%(-)7/&%.&%+b,%5+#-5%9I&=C-&/RZ@"5
)7,/7O/@9& 3 ;
,& F#=/@5+ )7/&%.& &=% 'g 0,%5+ 8L +%0"@5&F P 0,
%M)%.&B&%#&-,&%(-)7/&%.&%+b,%5+#C-&/O/9&",9B F,+F C
,& F#=/@5+ #&/) &=% @)+"&% (%&=/+ @)+"&,9I &=% 0,%5+ ,0
,&f# )7/&%.&%+F P 0,
&%#&-,&%(-"++h7/&%.&%+ F+%#.F
&%#&-,&%(-@)+"&%
OO
-
8/13/2019 Testing With Coffeescript
41/60
6=)8% =&C&4' )(8 )%&905 8%%"%7 ]:8=&4&4' )(8 ?8)(":^B A8 '8) )(&7 8%%"%J
-
8/13/2019 Testing With Coffeescript
42/60
S"B 58)a7 ?028 "@% @)+"&% ?8)(": )028 )(&7 0%%0$ "= =&85:7 &4)" 011"@4); K"
:" )(&7B L A&55 1%80)8 0 48A ?8)(": A(&1( )8557 @7 &= 0 =&85: &7 #%")81)8:; H@)
>8="%8 A8 :"B &)a7 )&?8 )" A%&)8 )(8 )87)7d
K(8 &?#58?84)0)&"4 &7 98%$ 807$J
W8)a7 (80: >012 )" "@% @)+"&% ?8)(": 04: =&C )(8 "48 =0&5&4' )87)J
'&%( )7/&%.&%+ 0,%5+# #=/@5+ #&/) &=% @)+"&% (%&=/+ @)+"&,9I
&=% 0,%5+ &! ,& f# )7/&%.&%+-
RM)%.&%+ f #12 +%#.7,)&,/9 f &/ %Z@"5 f >@)%7 "A%#/(% f -
+%#.7,8% F,#h7/&%.&%+BCF P 0,
,& F#=/@5+ 7%&@79 &7@% ,0 0,%5+ ,# )7/&%.&%+F P 0,
%M)%.&B&%#&-,&%(-,#h7/&%.&%+B F,+F CC-&/!%Q7@&=LBC
,& F#=/@5+ 7%&@79 0"5#% ,0 0,%5+ ,# 9/& )7/&%.&%+ /7 +/%#
9/& %M,#&F P 0,
%M)%.&B&%#&-,&%(-,#h7/&%.&%+B F+%#.F CC-&/!%b"5#LBC
%M)%.&B&%#&-,&%(-,#h7/&%.&%+B F0//F CC-&/!%b"5#LBC
,#h7/&%.&%+\ 4!&1-
-
8/13/2019 Testing With Coffeescript
43/60
64: )(8%8 $"@ (098 &)d O- #077&4' 7#817;
M48 =&405 )(&4' >8="%8 A8 ?"98 "4; L4 04 0##5&10)&"4 A&)( 0 50%'8 7@&)8 "=
7#817B %@44&4' )(8? 104 '8) 75"A; S&418B 0) )(8 ?"?84)B A8a%8 "45$ A"%2&4'
"4 )(8 '&%( 15077B A8 %8055$ "45$ A04) )" 788 )("78 7#817; K" 7"598 )(&7B
/07?&48 055"A7 @7 )" %@4 0 7@>78) "= 7#817;
Z8 104 @78 /07?&48a7 7#81 %@448% )" =&5)8% >$ +%#.7,8% >5"12; L4 "@%
>%"A78%B &= A8 0##84: i#)%.J'&%( B A8 A&55 "45$ >8 7("A4 04$ 7#817 &4 )(0)
>5"12;
&! ` ^$%L_ B .#< #'% `,#h7/&%.&%+ $%L
` ^$%L_ + /)^$%L_
OR
-
8/13/2019 Testing With Coffeescript
44/60
L4 !(0#)8% K(%88 A8V55 %89&8A 04: %8=01)"% "@% 8C&7)&4' 1":8 04: 8C)84: "@% 7("##&4' 10%)
=@%)(8%; Z8V55 &4)%":@18 )(8 1"418#) "= :&71"@4)7 04: '%0:@055$ >@&5: @# 04 &4)855&'84)
:&71"@4)&4' 7$7)8?; Z8V55 057" 5""2 0) 1%80)&4' "@% "A4 /07?&48 ?0)1(8% 04: 8C)84:&4' )(8
1"%8 7$7)8?;
-
8/13/2019 Testing With Coffeescript
45/60
6) )(&7 #"&4)B &)a7 0 '"": ?"?84) )" %89&8A A(8%8 A8a%8 @# )" %&'() 4"A; L4
)")05 )(8%8a7 O- #077&4' 7#817 A(&1( )855 ?8 )(8 =@41)&"405&)$ A8 (098
&?#58?84)8:;
K(8 !"#$%& J
e 6::&4' &)8?7
e T8?"9&4' &)8?7
e !051@50)&4' )")05 1"7)
e c0%&"@7 (85#8% =@41)&"47 ="% )(8 0>"98
n04: )(8 '&%( J
e k#:0)&4' 04 &)8?
e G%")81)8: =&85:7 "4 04 &)8?
e 3@41)&"4 )" %8)@%4 &= &)8? =&85: &7 #%")81)8: "% 4")
L4 )(&7 1(0#)8% A8 A&55 &?#58?84) ?"%8 =@41)&"405&)$ "4 >")( &)8?7 04:
>0728)7; !@%%84)5$B )(8%8a7 0 =8A >07&1 =80)@%87 $"@a: 8C#81) )" >8 &4 04$
7("##&4' 10%) 0##5&10)&"4 ?&77&4' 04: )(&7 1(0#)8% A&55 >8 0>"@) =&55&4' &4 )(8
("587;
M= 1"@%78B 898%$)(&4' A8 A%&)8 A&55 (098 )87)7 A%&))84 ="% &) =&%7) 04: A8a55
:8985"# >078: "== 8%%"% ?8770'87 =%"? "@% )87)7; La55 057" 7("A $"@ 0 1"@#58
?"%8 "= /07?&48a7 =80)@%87;
K(8 48C) )(&4' La: 5&28 )" )028 0 5""2 0) &7 &?#58?84)&4' :&71"@4)7; L4 %805&)$
A(84 "%:8%&4' "45&48 $"@ 104 "=)84 84)8% 0 :&71"@4) 1":8 )(0) A&55 '&98 $"@
0 18%)0&4 #8%184)0'8 "==B "% 1(80#87) &)8? =%88B "% 7"?8 #8%?@)0)&"4 05"4'
)("78 5&487;
K(8 &4&)&05 &?#58?84)0)&"4 ="% @7 &7 '"&4' )" >8 98%$ 7&?#58; Z8 104 0##5$ 0
:&71"@4) "4 04 84)&%8 >0728) A(&1( A&55 :81%8078 )(8 )")05 #%&18 >$ 0 18%)0&4
#8%184)0'8; K(8 A0$ L 849&70'8 :"&4' )(&7 &7 >$ (09&4' 0 ?8)(": "4 "@%!"#$%& ">[81) )" 0##5$ )(8 :&71"@4);
Of
-
8/13/2019 Testing With Coffeescript
46/60
-
8/13/2019 Testing With Coffeescript
47/60
S"B 0) )(&7 7)0'8 A8 h @47@%#%&7&4'5$ h (098 O =0&5&4' )87)7; 67 05A0$7B A8
7)0%) A&)( )(8 =&%7) )87)B '8) )(0) A"%2&4'B 04: ?"98 "4)" )(8 781"4:B 04: 7"
"4; K(8 =&%7) 8%%"% &7 7&?#5$ l@4:8=&48: &7 4") 0 =@41)&"4mB 7" L 104 =&C )(&7 >$
:8150%&4' )(8 ?8)(":;
K(84 A8 '8) )(8 8%%"% lEC#81)8: @4:8=&48: )" 8D@05 QN;mB 7" &)a7 )&?8 )"
A%&)8 )(8 =&%7) &?#58?84)0)&"4; T8?8?>8%B A8 "45$ 488: )" #077 )(8 =&%7)
=0&5&4' )87) %&'() 4"AB :"4a) 0))8?#) )" =&C )(8? 055; F8%8a7 ?$ &4&)&05
0))8?#)J
La55 [@7) 8C#50&4 A(0) La? :"&4' )(8%8 _ 70$ A8 #077 &4 .- 07 )(8 0%'@?84); L
:&9&:8 .- >$ .-- ]07 &)a7 0 #8%184)0'8^; L )(84 '8) )(8 )")05 "= )(8 #%&18B 04:
)(84 ?@5)$ &) >$ . 7@>)%01)8: =%"? )(8 #8%184)0'8; K(&7 '&987 @7 0?@5)&8%;
B;:;@) A8a98 4"A '")J
H0728) :&71"@4)&4' )(8 >0728) 7("@5: 4") >8 0>58 )" 0##5$ 0
:&71"@4) ?"%8 )(04 .--I; EC#81)8: _i;iiiiiiiiiiiiiif )"
8D@05 -;
K@%47 "@) )(&7 "48 &7 )%&9&05 )" #077J
"))5Lg,#./@9&\ 4.5'"#%: 0, B`."5.@5"&%Q/&"5BC ?
B; 0B"(/@9& *;
-
8/13/2019 Testing With Coffeescript
48/60
-
8/13/2019 Testing With Coffeescript
49/60
64: %&'() 4"A A8 (098 )(8 8%%"%J
H0728) :&71"@4)&4' )(8 >0728) 7("@5: #8%7&7) )(8 :&71"@4);
EC#81)8: N- )" 8D@05 QN;
3"% )(&7 A8 488: )" ?028 7"?8 1(04'87J
e 6:: &4 0 +,#./@9& #%"#8%)$ "4 )(8 15077 )" 7)"%8 )(8 :&71"@4)
e U028 ."5.@5"&%Q/&"5BC 0##5$ &=,#-+,#./@9&
e !(04'8 "))5Lg,#./@9&BC )" 78) &=,#-+,#./@9& 04: )(84 1055
."5.@5"&%Q/&"5BC
S" &4 )(8 1"47)%@1)"% ="% "@% !"#$%& L 104 0:: &4J
64: )(84 8:&) ."5.@5"&%Q/&"5 J
,& F#=/@5+ )%7#,#& &=% +,#./@9&F P 0,
%M)%.&B&%#&-8"#$%&-"))5Lg,#./@9&B ;< CC-&/!%g,#./@9&%+!LB ;< C
%M)%.&B&%#&-8"#$%&-."5.@5"&%Q/&"5BCC-&/RZ@"5 dX
`+,#./@9& J 7)%01) )(8? &4)" 0 1@7)"?
?0)1(8%; L 057" 5&28 :"&4' )(&7 ="% 150%&)$B 0) 0 D@&12 '50418 )(8 ="55"A&4'J
L7 1580%8% )(04J
K(8 =&%7) 7("A7 A8a%8 )87)&4' :&71"@4)7b )(8 781"4: :"874a); S"B A8 A&55 )028
"@% :&71"@4) )87)7 04: A%&)8 0 ?0)1(8%; Z%&)&4' 0 1@7)"? ?0)1(8% &4 /07?&48 &7 807$B &)a7 :"48 &4 )(8 8%0/7%R".= 1055 "= 0 :871%&>8 >5"12; Z8 104
"))5Lg,#./@9&\ 4.5'"#%: 0,
"(/@9& J S"&=-"8#B"(/@9&C
&! "(/@9& , ;
-
8/13/2019 Testing With Coffeescript
51/60
057" 1@7)"?&78 )(8 8%%"% ?8770'8 )(0) &7 :&7#50$8: &= 0 7#81 =0&57;
k4="%)@40)85$ A&)( /07?&48 )(8%8a7 4" A0$ )" '8) 0) 04$ 905@8 "% ">[81)
")(8% )(04 A(0) )(8 ?8)(": 1055 A&)(&4 %M)%.&BC %8)@%48:; F8418B "@%
&/!%g,#./@9&%+ ?8)(": (07 )" )028 )A" #0%0?8)8%7J )(8 "%&'&405 #%&18B 04:
)(8 :&71"@4) )" 0##5$; K(8 &?#58?84)0)&"4 5""27 5&28 )(&7J
X"@ 104 788 &4 )(8 8%0/7%R".= L 1055 "++S"&.=%7# B 04: )(84 #077 &) 04
">[81) A&)( "@% 48A ?8)(":; K(&7 )0287 )A" 0%'@?84)7B 04: )(84 %8)@%47 &= ".&@"5 _ A(&1( &7 0 90%&0>58 L 1%80)8 )" 7)"%8 ".&@"5 B &7 8D@05 )" )(8
#8%184)0'8 1051@50)&"4 ="%?@50;
`".&@"5 055"A7 @7 )" '8) 0) )(8 %8)@%48: 905@8 =%"? A&)(&4 )(8 %M)%.&BC
1055; L )(84 78) (%##"I% B A(&1( &7 )(8 ?8770'8 7("A4 &= )(8 0778%)&"4 =0&57;
K(&7 055"A7 ?8 )" %8#5018J
Z&)(J
8%0/7%R".= 0,
`"++S"&.=%7#
&/!%g,#./@9&%+\ 4'>&C6
-
8/13/2019 Testing With Coffeescript
52/60
65)("@'( &)a7 0 5&))58 5"4'8%B &)a7 4"A ?@1( 1580%8% A(0) A8a%8 )87)&4'B &)a7
?"%8 YTX 04: &)a7 ?@1( 4&18% )" %80:;
QN
-
8/13/2019 Testing With Coffeescript
53/60
L4 !(0#)8% 3"@% A8V55 )028 0 5""2 0) &4)8'%0)&4' 0 )(&%: #0%)$ 6GL 04: ("A >87) )" )87) &); Z8V55
8C0?&48 S#&87B /07?&48V7 7)@>>&4' =%0?8A"%2B 04: )028 0 5""2 0) )(8 >87) A0$ )" ?&4&?&78
:8#84:841&87 &4 "@% )87) 7@&)8;
-
8/13/2019 Testing With Coffeescript
54/60
W8)a7 &?0'&48 ="% 0 ?&4@)8 )(0) 07 #0%) "= "@% 0##5&10)&"4 A8 488: )" ?028 0
1055 )" 7"?8 O%: #0%)$ 78%9&18 )" #@55 &4 :0)0; M@% 0##5&10)&"4 104 ?028 04
6/6o %8D@87) 04: '8) >012 7"?8 /SM< )" A"%2 A&)(;F"A :" A8 )87) )(&7j
L:8055$B A8a: %0)(8% 4") #8%="%? )(8 01)@05 %8D@87); K(&7 A"@5: ?028 )(8
)87)7 75"A 04: :8#84:84) "4 04 &4)8%48) 1"4481)&"4; L47)80:B A8 104 @78 0
)81(4&D@8 10558: 7)@>>&4';
/07?&48 &415@:87 0 7)@>>&4' 5&>%0%$ 10558: S#&87; Z&)( S#&87B A8 104 10#)@%8
10557 )" 0 7#81&=&1 =@41)&"4 &4 "@% 15077B 04: %@4 ")(8% 1":8B %0)(8% )(04
%@44&4' )(8 01)@05 1":8B 8=81)&985$ %8#501&4' )(8 ?8)(": @4:8% )(8 ("":;
Z8a55 A%&)8 "@% 7)@>>&4' =@41)&"4 04: ?028 &) %8)@%4 7"?8 /SM8 7"?8)(&4' 5&28 )(&7J
3
F7"&,9I#F / ^3
F7"&,9IF / d P
F7%N,%AF / FQ=,# ,# " 7%"55L I7%"& )7/+@.&F P
F#/@7.%F / FT("m/9F
6P
3F7"&,9IF / ; P
F7%N,%AF / F' +,+9f& 7%"55L 5,$% ,& &="& (@.= ,&
A"#9& N%7L I//+F P
F#/@7.%F / FhO n/75+F
6P
3
F7"&,9IF / c P
F7%N,%AF / F'&f# )7%&&L "N%7"I%-F P
QP
-
8/13/2019 Testing With Coffeescript
55/60
-
8/13/2019 Testing With Coffeescript
56/60
K(8 A"%2 &7 :"48 &4 )(8 #)L]9 1055; Z8 #077 &4 )(8 ">[81) )" 7#$ "4B 04: )(8
?8)(": )" 7#$ "4; K(&7 "4 &)7 "A4 :"874a) %8055$ :" ?@1(b 055 )(0) A"@5: :"
"4 &)785= A"@5: 055"A @7 )" 1(812 &= )(8 ?8)(": (07 >884 10558:; K(8 %8055$
15898% #0%) &7 "9+O"55b"$% ; L) (&[0127 )(8 ?8)(": 04: 8C81@)87 A(0)898% A8
#077 )(%"@'(;
X"@ 104 788 (8%8 La? [@7) %8)@%4&4' "@% #0%78: /SM< ">[81); Z&)( )(0)B A8
(098 , ?"%8 #077&4' 7#817B >%&4'&4' "@% )")05 @# )" OR;
K(8 48C) )(&4' L A04) )" )028 0 5""2 0) &7 A%&)&4' )87)7 %8)%"7#81)&985$ ="%
1":8 )(0)a7 05%80:$ >884 A%&))84; L?0'&48 $"@a98 )0284 "98% )(&7 #%"[81)
0=)8% 0 >%&8= (&0)@7B 04: "48 "= $"@% "98%80'8% 1"5580'@87 (07 A%&))84 1":8
A&)("@) )87)7;
3&%7)B '&98 (&? 0 750# =%"? ?8 ][@7) 2&::&4'B 04 89&5 '50418 A&55 :"^ 04: )(84
A8 104 5""2 0) =&))&4' )87)7 )" &); K(8 1":8 (8a7 A%&))84 &7 ="% 0##5$&4'
1"@#"47 )" 0 >0728) )(0) '8) .-I "==; K(8$ 0%8 0:0?04) )(8$a98 )87)8: &)
)("%"@'(5$ >@) $"@ 24"A )(0) 4")(&4' 104 )87) &) >8))8% )(04 7"?8 /07?&48
7#817;
F8%8a7 (&7 1":8J
8%0/7%R".= 0,
#)L]9B&%#&-,&%(P fI%&?"&,9I#f C-"9+O"55b"$% 0,
o>]U-)"7#%B f3F7"&,9I#F\^3F7"&,9IF\dPF7%N,%AF\FQ=,# ,# "7%"55L I7%"&
)7/+@.&FPF#/@7.%F\FT("m/9F6P3F7"&,9IF\;PF7%N,%AF\F' +,+9&
7%"55L 5,$% ,& &="& (@.= ,& A"#9& N%7L I//+FPF#/@7.%F\FhO
n/75+F6P3F7"&,9IF\cPF7%N,%AF\F' )7%&&L
"N%7"I%-FPF#/@7.%F\FR8"LF6_6f C
Qi
-
8/13/2019 Testing With Coffeescript
57/60
La? '"&4' )" 0:: "@% )87)7 )" )(&7 A&)(&4 )(8 +%#.7,8% >5"12 ="% :&71"@4)7B 07
)(8 >")( 0%8 %850)8:B 04: )(84 A8 104 @78 "@% 1@7)"? ?0)1(8% A&)("@)
(09&4' )" ?"98 &) @# 0 58985 "= 71"#8;
K(8 =&%7) )87)7 0%8 807$ 84"@'( 04: #077 )""J
X"@ ?&'() )(&42 )(0) A8a%8 :"48B %&'()j
"))5LO/@)/9\ 4$'
-
8/13/2019 Testing With Coffeescript
58/60
K(8 )87)7 #077 >@) )(0)a7 4") 84"@'(; L= $"@ "45$ 898% )87) )(8 #"7&)&98
"@)1"?8B $"@a%8 4") )("%"@'(5$ )87)&4' )(8 =@41)&"405&)$; K(878 )87)7B "4
)(8&% "A4B "45$ )855 @7 )(0) "))5LO/@)/9 A&55 05A0$7 #077;
Z8 488: 1"@4)8%_)87)7 )" 1(812 )(0) &) A&55 4") 0##5$ 0 :&71"@4) &4 18%)0&4
7&)@0)&"47 ]40?85$ A(84 )(8 1"@#"4 &7 &4905&:^ 04: )(84B A&)( >")( 78)7 "=
)87)7 )"'8)(8%B A8 104 >8 1"4=&:84) &4 "@% &?#58?84)0)&"4;
U$ 1"@4)8% )87)7 5""2 5&28J
-
8/13/2019 Testing With Coffeescript
59/60
3"% 0 7" 10558: U&4&H""2 A8V98 1"98%8: 0 5") "= 1"418#)7d L= $"@V%8 48A )" /07?&48 "% )(8 HYY
0##%"01( $"@ ?0$ >8 58=) =885&4' 75&'()5$ "98%A(85?8:; L= )(0)V7 $"@B LV: (&'(5$ %81"??84:
%8%80:&4' 0'0&4B #8%(0#7 8C#04:&4' )(8 0## A%&))84 &4 )(&7 >""2B 0::&4' 48A =80)@%87B "%
1%80)&4' 0 48A 7&:8 #%"[81) "% /090S1%) #%"[81) )" )87) $"@%785=; Z(&57) L ("#8 %80:&4' )(&7
>""2 (07 (85#8: $"@B )(8%8V7 4" 7@>7)&)@)8 ="% 7&))&4' :"A4 $"@%785= 04: A%&)&4' 7"?8 )87)7;
!"==88S1%) 057" %8055$ 7(&487 A(84 A%&)&4' ?@1( ?"%8 1"?#58C 0##5&10)&"47; 65)("@'( "@%
0## &7 >07&1B &4 #50187 !"==88S1%) 7098: @7 0 5") "= 1":8 "98% 0 #50&4 /090S1%)
&?#58?84)0)&"4; L4 #0%)&1@50% 1%80)&4' 0 15077B 0::&4' ?8)(":7B 04: 7&?#5&=&8: "#8%0)"%7 (098
7098: @7 ?877$ 904&550 /090S1%);
L= $"@ A04) )" 1"4)&4@8 A&)( !"==88S1%) 04: HYYB ?$ 0:9&18 &7 )A"="5:; 3&%7)5$B '8) A%&)&4';
!"?8 @# A&)( 04 &:80 ="% 0 /090S1%) 5&>%0%$B 0 #5@'&4B "% 04$)(&4' 7&?&50%B 04: ="%18 $"@%785=
)" A%&)8 )87)7 =&%7); Z(84 L =&%7) >8'04 ?$ 0:984)@%87 &4 HYYB &) A07 (0%: )" 788 )(8
0:904)0'87; Z($ A%&)8 )87)7 ="% 7@1( >07&1 =@41)&"405&)$j Z($ A%&)8 )87)7 0) 055j L)V7 [@7) )&?8
A07)8: L 1"@5: >8 @7&4' )" &?#58?84)B %&'()j L4 (&4:7&'() )("@'(B L 0? 7" '50: L 7)@12 A&)( &)
04: 4"A LV? %80#&4' )(8 %8A0%:7 &) >%&4'7B )(8 98%$ "487 L (098 1"498$8: 04: 40&58: ("?8
?@5): )&?87 &4 )(&7 >""2;
L= $"@ 7)%@''58 A&)( 04$ "= )(8 1"418#)7 &4 )(&7 >""2B =885 =%88 )" '8) &4 1"4)01) A&)( ?8 "4
KA&))8% ]p/012q3%0425&4 ^ 04: LV55 >8 (0##$ )" (85#; L ("#8 $"@V98 ="@4: )(&7 >""2 @78=@5B 04:
)(0427 ="% %80:&4'd
http://twitter.com/Jack_Franklinhttp://twitter.com/Jack_Franklin -
8/13/2019 Testing With Coffeescript
60/60
!" !"!#$%!#$%
&''(&''())!"#$%& ()**+,*% -../( 0.$ 12- 32425.62$(
!""#$%&&'(')*+,--.$/0-1
https://efendibooks.com/https://efendibooks.com/https://efendibooks.com/https://efendibooks.com/https://efendibooks.com/https://efendibooks.com/https://efendibooks.com/https://efendibooks.com/https://efendibooks.com/
top related