Testing With Coffeescript

Embed Size (px)

Citation preview

  • 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/