±à¼ÍƼö: |
ÎÄÕÂÖ÷Òª½éÉÜÁËÐÐΪÇý¶¯¿ª·¢£¨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£¬ÍƼö¡¢Ò²ÊÔÍ¼ÍÆ¹ãËüµÄÔÒò¡£
|