Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
CucumberÈëÃÅ - ɶÊÇBDD£¿
 
×÷Õߣºjarodzz
  5704  次浏览      21
 2019-11-21
 
±à¼­ÍƼö:
ÎÄÕÂÖ÷Òª½éÉÜÁËÐÐΪÇý¶¯¿ª·¢£¨BDD£©ÊÇʲô£¿´«Í³µÄ¿ª·¢Á÷³ÌWÄ£ÐÍ£¬WÄ£ÐÍÓëBDDÄ£Ð͵ÄÇø±ðµÈ¡£
±¾ÎÄÀ´×ÔÓÚcnblogs£¬ÓÉ»ðÁú¹ûÈí¼þLuca±à¼­¡¢ÍƼö¡£

¼òÒ×BDD

ÎÒÃÇÖªµÀCucumber£º

¿ÉÒÔʹÓÃ×ÔÈ»ÓïÑÔÃèÊö²âÊÔÓÃÀý

¿ÉÒÔ×÷Ϊ×Ô¶¯»¯²âÊÔÔËÐÐ

×÷Ϊһ¸ö×Ô¶¯»¯²âÊÔ¹¤¾ß£¬ÕâЩÒѾ­×ã¹»ÁË¡£È»¶ø£¬CucumberµÄÊ×Ò³Çå³þµØд×Å¡°making BDD fun¡±£¬¼´ÈÃÐÐΪÇý¶¯¿ª·¢³äÂú»¶ÀÖ¡£ÐÐΪÇý¶¯¿ª·¢£¨BDD£©ÊÇʲô£¿CucumberµÄ¿ª·¢ÕßΪʲôÓÖÒª¸øËü¿ÛÉÏÕâ¸öñ×ÓÄØ£¿

ΪÁËÕÒµ½´ð°¸£¬ÎÒÃÇÔٴλص½CucumberµÄÊ×Ò³µÄÁù¸±Í¼¡£

ÓÐÁËÇ°Ò»Õ´«Í³Á÷³ÌµÄ»ù´¡£¬ÕâÒ»´ÎÎÒÃÇ°´ÕÕBDDµÄÁ÷³ÌÀ´½éÉÜÕâÁùÕÅͼ¡£

ͼ1.ʹÓÃ×ÔÈ»ÓïÑÔÃèÊö²úÆ·ÐÐΪ¡£´Ë´¦£¬ÐÐΪ´ú±í×ÅÓû§ÐèÇó¡£¼´µ±Óû§ÒÔijÖÖ·½Ê½Ê¹ÓøòúÆ·£¬ÓÖ½«»ñµÃÔõÑùµÄ·´À¡¡£ÉÔºó£¬Õâ¸öÎļþÓÖ¿ÉÒÔ×÷Ϊ²âÊÔÓÃÀý¡£Òò´Ë£¬ÐÐΪÔÚ´Ë´¦¼´ÊÇÓû§ÐèÇó£¬ÓÖÊDzâÊÔÓÃÀý¡£ÕýÒòΪʹÓÃÐèÇóÀ´½øÐвâÊÔ£¬Õâ¸öÇ¿´óµÄÔ¸¾°£¬²ÅʹµÃBDD¿ÉÒÔ¸ü¼Ó½ÚÔ¼¡¢Ñ¸½Ý¡£

ͼ2.ʹÓÃruby½øÐв½Ö趨Òå¡£×÷ΪÓû§ÐèÇóÓë²âÊÔÓÃÀýµÄÐÐΪ£¬½ö½öÊÇÎı¾¡£ÎªÁËÈÃÕâЩÎı¾¿ÉÒÔ×÷Ϊ×Ô¶¯»¯²âÊÔÔËÐÐÆðÀ´£¬ÎÒÃÇÐèÒª±àд²½Ö趨ÒåµÄ´úÂë¡£

ͼ3.ÔËÐÐCucumber£¬Ê§°Ü¡£Ô­ÒòºÜ¼òµ¥£ºÓÐÁË¿ÉÒÔÔËÐеÄ×Ô¶¯»¯²âÊÔ£¬È´Ã»ÓжÔÓ¦µÄ²úÆ·´úÂë¡£

ͼ4.±àд²úÆ·´úÂë¡£

ͼ5.ÔËÐÐCucumber¡£ÒòΪÓÐÁ˲¿·Ö²úÆ·´úÂ룬ԭÀ´Ê§°ÜµÄ×Ô¶¯»¯²âÊÔͨ¹ýÁË¡£×¼È·µÄ˵£¬ÔÝʱ£¬²¿·Öͨ¹ýÁË¡£

ͼ6.Öظ´ÉÏÊö²½Ö裬ֱµ½ËùÓвúÆ·ÐÐΪ¶¼ÃèÊöÍê±Ï£¬ËùÓвúÆ·´úÂ붼¿ÉÒÔͨ¹ýÐÐΪµÄ×Ô¶¯»¯²âÊÔ¡£¼´£ºÔÚ²úÆ·´úÂëÍê³Éºó£¬Ê¹ÓÃÏÈÇ°±àдºÃµÄ¡¢¿ÉÒÔÔËÐеÄÐÐΪÀ´×Ô¶¯»¯²âÊÔ²úÆ·´úÂë¡£ÔÚ×Ô¶¯»¯²âÊÔͨ¹ýºó£¬Íê³É²úÆ·¿ª·¢¡£

×ܽáÒ»ÏÂÉÏÊöÁ÷³Ì£ºÎÒÃÇÏÈÃèÊö²úÆ·ÐÐΪ£¨Describe behavior£©×÷ΪÓû§ÐèÇóºÍ²âÊÔÓÃÀý¡£¶øºó£¬ÎªÐÐΪ£¨behavior£©Ìṩ×Ô¶¯»¯²½Ö裨step definitions£©£¬Ê¹Æä³ÉΪ×Ô¶¯»¯²âÊÔ¡£½ÓÏÂÀ´£¬±àд²úÆ·´úÂ룬ÒÔʹµÃËüÄܹ»Í¨¹ýÐÐΪµÄ×Ô¶¯»¯²âÊÔ¡£Õû¸öÁ÷³ÌÖУ¬²úÆ·´úÂëµÄ¿ª·¢£¬¶¼ÊÇÓÉÐÐΪÇý¶¯£¨Behavior Driven£©µÄ¡£Òò´Ë£¬ÎÒÃǽ«Õâ¸öÁ÷³Ì£¬³Æ֮ΪÐÐΪÇý¶¯¿ª·¢£¨Behavior driven development£©¡£

¸´ÔÓÏîÄ¿ÖеÄBDD

ÔÚÄã·¢ÏÖ֮ǰ£¬ÎÒÏȳÐÈÏ¡£µ½Ä¿Ç°ÎªÖ¹£¬ÕâƪÎÄÕÂÓиöÖÂÃüµÄȱÏÝ£ºÀý×ÓÌ«¼òµ¥ÁË¡£ÏÖʵÖУ¬Óм¸¸öÈ˻ỨǮ¹ËÔÛÃÇ×ö¼Ó·¨¼ÆËãÆ÷ÄØ£¿µ«·²ÏîÄ¿£¬¶¼ÊÇÐèÇóÎĵµ¡¢¹¦ÄÜÎĵµ¡¢Ä£¿éÉè¼ÆÎĵµ¡¢´úÂë¡¢²âÊÔÎĵµ¡¢²âÊÔÓÃÀý¡¢ÏµÍ³²âÊÔÎĵµ¡¢Óû§ÑéÊÕ²âÊÔÎĵµÒ»´ó¶Ñ¡£ÉÏÊöÀý×ÓÕâÖÖ£¬Ò»¸öÐèÇ󣬼¸¸ö²âÊÔÓÃÀý£¬¼¸ÐдúÂëµÄÏîÄ¿£¬Õâ¸öÕæûÓС£

ÔÛÃÇÏÈÀ´¿´¿´¸´ÔÓÏîÄ¿ÖУ¬´«Í³µÄ¿ª·¢Á÷³ÌWÄ£ÐÍ£¬Èçͼ£º

ÔÚWÄ£ÐÍÖУ¬Ã¿Ò»·ÝÏîÄ¿Îĵµ£¬¶¼¶ÔÓ¦×ÅÒ»·Ý²âÊÔÎĵµ£¬È磺Óû§ÐèÇóÎĵµÓëÓû§ÑéÊÕ²âÊÔÎĵµ¡£Ã¿Ò»·Ý²âÊÔÎĵµ£¬ÓÖ¿ÉÄܶÔÓ¦×ÅÒ»·Ý×Ô¶¯»¯²âÊÔ´úÂ룬È磺Óû§ÑéÊÕ²âÊÔÎĵµÓë×Ô¶¯»¯Óû§ÑéÊÕ²âÊÔ´úÂë¡£

˵ÍêÁË´«Í³Á÷³Ì£¬Ôٻص½BDD¡£2.1µÄÀý×ÓÖУ¬BDDÕûºÏÁËÓû§ÐèÇó¡¢²âÊÔÓÃÀý¡¢×Ô¶¯»¯²âÊÔÓÃÀý¡£Õë¶Ô¸´ÔÓÏîÄ¿£¬BDDµÄ½â¾ö°ì·¨ÒÀ¾ÉÊÇ£ºÕûºÏ£¡ÕûºÏ£¡ÕûºÏ£¡Èçͼ£º

ÔÚBDDµÄÁ÷³ÌÖУ¬ÐÐΪÕâÒ»¸ÅÄÕûºÏÁ˶àÖÖÎĵµÓë´úÂ룺

Óû§ÐÐΪÃèÊöÓû§Óëϵͳ½»»¥µÄ³¡¾°£¬×÷ΪÓû§ÐèÇó£¬ÑéÊÕ²âÊÔ£¬ºÍ×Ô¶¯»¯ÑéÊÕ²âÊÔ

ϵͳÐÐΪÃèÊöϵͳÌṩµÄ¹¦Äܳ¡¾°£¬×÷Ϊϵͳ¹¦ÄÜÎĵµ£¬ÏµÍ³²âÊÔ£¬ºÍ×Ô¶¯»¯ÏµÍ³²âÊÔ

Ä£¿éÐÐΪÃèÊöÄ£¿é¼ä½»»¥µÄ³¡¾°£¬×÷Ϊģ¿é¹¦ÄÜÎĵµ£¬Ä£¿é²âÊÔ£¬ºÍ×Ô¶¯»¯Ä£¿é²âÊÔ

¶Ô±ÈWÄ£ÐÍÓëBDDÄ£ÐÍ£¬×îÖ÷ÒªµÄÇø±ð£º

WÄ£Ð͵Äÿ¸öºáÏò½×¶Î£¬¶¼ÐèÒª±£´æÈý·Ý¿½±´£º¹¦ÄÜÎĵµ+²âÊÔÎĵµ+×Ô¶¯»¯²âÊÔÓÃÀý

BDDÄ£ÐÍÖ»ÐèÒªÒ»·Ý¿½±´£¬ÐÐΪ

²ÉÓÃBDDÁ÷³Ì½øÐпª·¢£¬ÓÉÍâ¶øÄÚ£¬³ÖÐøµØÃèÊöµ±Ç°ÏµÍ³»òÄ£¿éµÄÐÐΪ£¬²¢ÎªÖ®ÊµÏÖ×Ô¶¯»¯£¨¼´²½Ö趨Ò壩¡£µ±²úÆ·´úÂ벿·ÖÍê³Éºó£¬ÓÒ²àµÄһϵÁвâÊԻ¶¼ÒѾ­×Ô¶¯»¯ÁË¡£(ÖÁÓÚÈçºÎµü´ú¿ª·¢£¬ÈçºÎ³ÖÐø¼¯³É£¬ÈçºÎ»®·ÖÓû§¹ÊÊÂÒÔ±£Ö¤¿É³ÖÐø·¢²¼¿É½»¸¶µÄ²úÆ·£¬ÕâÀï¾Í²»×ö¹ý¶à½²Êö¡£ÓÐÐËȤµÄ£¬¿ÉÒÔ¿´¿´Ãô½ÝµÄÊé¡£)

ά»ù°Ù¿ÆÉ϶ÔBDDµÄ¶¨Ò壬ԭÎÄΪ£º

BDD is a second-generation, outside¨Cin, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.

ÎÒÓÃÖÐÎĸ´ÊöÏ£º

BDDÊÇÒ»¸öµÚ¶þ´úµÄÃô½Ý¿ª·¢·½·¨¡£ËüÓÐÈçÏÂÌص㣺

ÓÉÍâ¶øÄÚ£ºÓû§ -> ϵͳ -> Ä£¿é

ÒÔÀ­Á¦Çý¶¯£ºÏÈÉ趨Ŀ±ê£¬¼´ÐÐΪ£¬¶øºó±àд²úÆ·´úÂëȥʵÏÖÄ¿±ê

¶àÀûÒæÈË£ºÓû§¡¢¿ª·¢ÈËÔ±¡¢²âÊÔÈËÔ±¹²Í¬Î¬»¤ÐÐΪ

¶àÀ©Õ¹ÐÔ£º¿ÉÒÔÃèÊöÓû§¼¶¡¢ÏµÍ³¼¶¡¢Ä£¿é¼¶ÐÐΪ

¸ß¶È×Ô¶¯»¯£ºÖ»ÒªÌṩ²½Ö趨Ò壬ËùÓÐÐÐΪ¶¼¿ÉÒÔ×÷Ϊ×Ô¶¯»¯²âÊÔÔËÐÐ

Ëü¶¨ÒåÁËÒ»¸ö¿É³ÖÐøµÄÖÜÆÚ£¬ÔÚÖÜÆÚÖÐÈËÃÇÏÈÉ趨Ŀ±ê£¬ÔÙΪÁË´ïµ½Ô¤ÆÚÄ¿±ê¶ø½øÐбàÂ룬ֻÓдúÂëͨ¹ýÑéÖ¤²Å¿ÉÌá½»¡£³ÖÐø½»¸¶¿É¹¤×÷¡¢¾­¹ý²âÊÔµÄÈí¼þ¡£

ÀíÏëÖеÄBDD¿ª·¢£¬ÊÇÕâÑùµÄ£ºÖÜÒ»Ô糿ÉÏ°àʱ£¬ÍŶӳÉÔ±Ò»ÆðÊéдһ¸ö»ò¼¸¸öÓû§ÐÐΪ£¬²¢ÎªÃ¿¸öÐÐΪ¹ÀË㹤×÷Á¿¡£´ÓÖÐÑ¡³ö¿ÉÒÔÔÚÒ»ÖÜÄÚÍê³ÉµÄ²¿·Ö£¬ÒÔ×÷Ϊ±¾ÖÜÄ¿±ê¿ªÊ¼¹¤×÷¡£¹¤×÷ÖУ¬Í¨¹ý¶ÔÓû§ÐÐΪµÄÉîÈëÀí½â£¬ÊéдϵͳÐÐΪÒÔ¼°¿ÉÄÜÐèÒªµÄÄ£¿éÐÐΪ¡£ÔÚ¿ª·¢ÈËÔ±±àд²úÆ·´úÂëʱ£¬ÓɲâÊÔÈËÔ±±àд²½Ö趨Òå¡£ÖÜÎ壬¿ª·¢ÈËԱ½Ðø½«´úÂëÌá½»£¬²¢Ê¹ÓòâÊÔÈËÔ±×Ô¶¯»¯¹ýµÄÐÐΪ½øÐвâÊÔ¡£µ±ËùÓÐÐÐΪ¶¼Í¨¹ýʱ£¬±¾ÖÜÈÎÎñÍê³É¡£Èçͼ£º

BDDÁ÷³ÌÖУ¬°üº¬µÄÃô½Ý˼ÏëÓУº

¸öÈ˽»Á÷ʤ¹ýÁ÷³ÌÓ빤¾ß£ºÒ»ÖÜÄÚ£¬¿ª·¢ÈËÔ±ºÍ²âÊÔÈËÔ±¶¼Òª¼ç²¢¼çÒ»Æð¹¤×÷

¿É½»¸¶µÄÈí¼þʤ¹ý·±¸´µÄÎĵµ£ºÒ»ÖÜÄÚ£¬¼¸ºõûÓÐÈκÎÎĵµ²úÉú£¬ËùÓÐÐÐΪ¶¼ÒÔ´úÂ뷽ʽ´æÔÚ

»Ø¹Ë

BDDÊÇÒ»¸öÓÉÍâ¶øÄÚ¡¢ÒÔÀ­Á¦Çý¶¯¡¢¸ß¶È×Ô¶¯»¯µÄÃô½Ý·½·¨

BDDµÄʵ¼ù£¬ÐèÒªÓû§¡¢¿ª·¢ÈËÔ±ºÍ²âÊÔÈËÔ±¹²Í¬Å¬Á¦

BDDÖеÄÐÐΪ£¬¿ÉÒÔÕûºÏ´«Í³Á÷³ÌÖеÄÖî¶àÎĵµÓë´úÂ룻¿ÉÒÔ¼õÉÙΪά»¤Îĵµ¶øÔì³ÉµÄÀË·Ñ£»

ÔÚCucumberÖУ¬ÐÐΪ£¨behavior£©ÊÇÓù¦ÄÜ£¨feature£©ÎļþÀ´ÃèÊöµÄ

CucumberÖ»ÊÇBDDÖеÄÒ»¸ö¹¤¾ß£¬»¹ÓÐÆäËû¹¤¾ßÈçJbehaveµÈ

˵ÍêÕýʶù£¬Îҵñí¸ö̬¡£BDDÊǺö«Î÷£¬Ò»ÈçTDD£¬Ò»ÈçAATDD¡£Ëü¹»¿ì£¬¹»Ö±½Ó£¬¹»½ÚÔ¼£¬Òò´Ë£¬¹»Ãô½Ý¡£

¿ÉBDD²¢·ÇÊÊÓÃÓÚËùÓвúÆ·¡¢ËùÓÐÍŶӡ£¿ª·¢CucumberµÄÈËÃÇ£¬ÓÐ×ÅÁ¼ºÃµÄ±àÂë¼¼ÄÜÓëÖÊÁ¿Òâʶ¡£Cucumber×Ô¼ºµÄÔ´ÂëÖУ¬¾Í°üº¬Cucumber×Ô¼ºµÄ¹¦ÄÜ£¨feature£©Îļþ¡£Òò´Ë£¬ËûÃÇÄÑÃâ»á¶ÔʹÓÃÕߣ¬ÓÐÆÚÐí£¬ÆÚÐíËûÃÇÓë×Ô¼ºÒ»Ñù£¬ÓÐ×ÅÁ¼ºÃµÄ±àÂë¼¼ÄÜÓëÖÊÁ¿Òâʶ¡£µ«´ó²¿·ÖÎÒËù½»Á÷¹ýµÄÍŶӣ¬²âÊÔÈËÔ±²¢²»¾ß±¸Èç´ËÓÅÐãµÄ±àÂë¼¼ÄÜ£¬¶ø¿ª·¢ÈËÔ±Ó־߱¸Èç´ËÓÅÐãµÄÖÊÁ¿Òâʶ¡£È»ºó£¬»¹Òª¿¼ÂÇÒòΪºöÈ»½Ó´¥ÐÂÊÂÎï¡¢ÐÂ֪ʶµ¼ÖµĶÌÆÚµÄЧÂʽµµÍ¡£³¤Ô¶À´¿´£¬Ò²¿ÉÄÜÓÉÓÚÈËΪÒòËص¼ÖÂÆäËûÎÊÌâ¡£

Òò´Ë£¬ÎÒϲ»¶BDD£¬µ«²»ÍƼöËü¡¢²»ÊÔͼÍƹ㡣µ«ÊÇ£¬Èç¹ûÅ׿ªBDD£¬Ö»ÊÇ°ÑCucumberµ±×öÒ»¸ö×Ô¶¯»¯²âÊÔ¹¤¾ß£¬ÔÚ²»¸Ä±äÏÖÓÐÁ÷³ÌµÄÇé¿öÏ£¬È¥Óã¬È¥Ìå»á£¬È¥Ë¼¿¼¡£½¥½¥µØ£¬Ò»¸ö×é»òÒ»¸öÏîÄ¿±ã¿ÉÒÔÂýÂýµØ¼õÉÙÀË·Ñ£¬Ôö¼Ó×Ô¶¯»¯£¬ÔÚ¸ü¶Ìʱ¼äÌṩ¸ü¶àµÄ¿É½»¸¶µÄ²úÆ·¡£ÉõÖÁÓÚ£¬²»Öª²»¾õµØתÐͳÉBDD¡£Õâ¾ÍÊÇÎÒϲ»¶cucumber£¬ÍƼö¡¢Ò²ÊÔͼÍƹãËüµÄÔ­Òò¡£

 

 
   
5704 ´Îä¯ÀÀ       21
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù