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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
»ùÓÚÁ´Â·Ë¼ÏëµÄSpringBootµ¥Ôª²âÊÔ¿ìËÙд·¨
 
×÷Õߣº ÌÒ·û
  1678  次浏览      27
 2022-1-17
 
±à¼­ÍƼö:
±¾ÎĽéÉÜΪʲôҪдµ¥Ôª²âÊÔ,ÎªÊ²Ã´ÍÆ¼öÁ´Â·Ë¼Ï룿 ÈçºÎÓÃÁ´Â·Ë¼ÏëÉè¼Æ/¹¹Ôìµ¥²â£¿¿ìËÙд·¨Êµ¼ù°¸Àý appium¹¤×÷Ô­ÀíÒÔ¼°ÏÂÔØ°²×°²¿Êð£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ°¢Àï¼¼Êõ £¬ÓÉAlice±à¼­¡¢ÍƼö¡£

ÒýÑÔ£º

±¾ÎĸüÆ«Ïòʵ¼ù¶ø·Ç·½·¨ÂÛ£¬ËùÌá¼°µÄSpringBootµ¥Ôª²âÊÔд·¨Òಢ·Ç¹Ù·½½â£¬½ö½öÊDZÊÕß×ÔÉí¾õµÃ±È½Ï·½±ã¡¢Ð§ÂʽϸߵÄÒ»ÖÖд·¨¡£Ã¿¸öÍŶÓÉõÖÁÍŶÓÄÚµÄÿλ¿ª·¢¿ÉÄܶ¼ÓÐ×Ô¼ºµÄд·¨Ï°¹ßºÍ·ç¸ñ£¬Ö»ÒªÄÜʵÏÖµ¥Ôª²âÊÔµÄЧ¹û£¬¾Íû±ØÒª¾À½áÓÚд·¨µÄ¼òµ¥ÒÖ»ò¸´ÔÓ¡£ÕâÀïÒ²»¶Ó­¸÷λ´óÀÐÃÇ·¢±í¿´·¨»ò·ÖÏí×Ô¼ºµÄµ¥²âÐĵ㬰ïÖúÏñ±ÊÕßÕâÑùµÄÐÂÈË¿ìËٳɳ¤¡£

Ò» ΪʲôҪдµ¥Ôª²âÊÔ£¿

²âÊÔÊÇDevopsÉϼ«ÖØÒªµÄÒ»»·£¬µ«´ó¶àÊý¿ª·¢µÄÑ۹ⶼͣÁôÔÚ¼¯³É²âÊÔÕâÒ»»·¡ª¡ªÖ»ÒªÄÜÁªµ÷³É¹¦£¬ÄÇôÎÒÕâ´Î×¼±¸ÉÏÏßµÄÌØÐÔÒ»¶¨ÊÇûÎÊÌâµÄ¡£

ÀÏʵ³ÐÈÏ£¬ÎÒÔø¾­ÊÇÕâÑùµÄ¿ÉÄÜÏÖÔÚÒ²»¹ÊÇÕâÑù¡£×÷Ϊ·Ç¿Æ°à³öÉíµÄ±ÊÕߣ¬Ñо¿Éú±ÏÒµºó¾ÍÁ¢¼´½øÈëÁËͬÔÚº¼ÖݵÄxx³§£¬ÏȺó²ÎÓëÁËÄÚ²¿Devopsƽ̨½¨ÉèºÍxxÔÆPaasÏîÄ¿¿ª»Ä£¬ÔÚÕâÁ½¸öÏîÄ¿ÖУ¬¿ª·¢ > ²âÊÔÊǺÜÕý³£µÄ³¡¾°£¬ÉõÖÁ²¿·Ö²âÊÔÒ²ÊÇÔ­¿ª·¢ÓÑÇé¿Í´®µÄ£ºÓÉÓÚȱÉÙרҵµÄ²âÊÔÈËÔ±£¬¿ª·¢ÍùÍùÐèÒª¼æ¹Ë¼¯³É²âÊÔÉõÖÁÊÇÏßÉϲâÊԵĻî¶ù¡£ÎªÁËÌá¸ßЧÂÊ£¬ÎÒ½«Ò»²¿·Ö³£ÓõIJâÊÔÓÃÀýά»¤ÔÚÁËÄÚ²¿µÄ×Ô¶¯»¯²âÊÔÆ½Ì¨ÉÏ¡£¼´±ãÈç´Ë£¬ÎÒÈÔÄÜÇåÎúµØ¸Ð¾õµ½£¬²âÊÔËùÄܸ²¸ÇµÄ³¡¾°ÇüÖ¸¿ÉÊý£¬ÒÔÖÁÓÚÿ´Î×ÔÐŵØÉÏÏß´óÌØÐԺ󣬶¼»áÒòÒ»Ð©Ææ¹ÖµÄÎÊÌâ¶ø¶¨Î»µ½´ó°ëÒ¹¡£ÐÒ¿÷ºóÃæÓöµ½ÁËһλ×ÊÉî´óÀУ¬ÔÚcode reviewʱ£¬ËûÖ±½Óµã³öÎÒ²»Ð´µ¥Ôª²âÊԵĻµÏ°¹ß£¬²¢ÓÃ×ÔÉí²ÒÍ´µÄÏßÉϽÌѵ·´¸´Ç¿µ÷µ¥²âµÄÖØÒªÐÔ¡£

µ±È»ÉÏÊöÖ»ÊÇÎÒµÄÇ×Éí¾­Àú£¬ÃãÇ¿×÷ΪÈÕ³£ÏÐÁĵÄ̸×Ê¡£Èç¹ûÏëÒªÉîÈëÀí½âµ¥Ôª²âÊÔµÄÖØÒªÐÔ£¬ÍƼöGoogleÉÏËÑË÷the importance of unit test¹Ø¼ü×Ö£¬¿ÉÒÔ¸ÐÊÜϲ»Í¬¹ú¼Ò¡¢²»Í¬ÁìÓòµÄ³ÌÐòÔ±¶Ôµ¥Ôª²âÊԵIJ»Í¬Àí½â£¬Ïë±ØÄÜÓиü´óµÄÊÕ»ñ¡£

¶þ ÎªÊ²Ã´ÍÆ¼öÁ´Â·Ë¼Ï룿

ÉîÈë½Ó´¥µ¥Ôª²âÊÔ£¬¿ª·¢ÄÑÃâ»áÓöµ½ÒÔϳ¡¾°£º
  1. Ó¦¸ÃÈçºÎÉè¼Æ²âÊÔÓÃÀý£¿
  2. Ó¦¸ÃÈçºÎ±àд²âÊÔÓÃÀý£¿
  3. ²âÊÔÓÃÀýµÄÖÊÁ¿¸ÃÈçºÎÅж¨£¿

¸Õ¿ªÊ¼Ñ§Ï°Ð´µ¥Ôª²âÊÔ£¬ÎÒÒ²Ôø²Î¿¼²¢³¢ÊÔ¹ýÍøÉÏÎ廨°ËÃŵÄд·¨¡£ÕâЩд·¨¿ÉÄÜÓõ½Á˲»Í¬µÄµ¥²â¿ò¼Ü£¬Ò²¿ÉÄܲàÖØÁ˲»Í¬µÄ´úÂë»·½Ú(ÀýÈçÌØ¶¨µÄij¸öservice·½·¨)¡£Ò»¿ªÊ¼ÎÒΪ×Ô¼ºÄܹ»ÊìÁ·Ê¹ÓöàÖÖµ¥²â¿ò¼Ü¶øÕ´Õ´×Ôϲ£¬µ«Ëæ×ʤ×÷µÄÍÆ½ø£¬ÎÒÖð½¥Òâʶµ½£¬µ¥Ôª²âÊÔÖÐÖØÒªµÄ²¢²»ÊÇ¿ò¼ÜÑ¡ÐÍ£¬¶øÊÇÈçºÎÉè¼ÆÒ»Ì×ÓÅÐãµÄÓÃÀý¡£Ö®ËùÒÔÓÃ"Ò»Ì×"¶ø²»ÊÇ"Ò»¸ö"£¬ÊÇÒòΪÔÚÎÒÃǵÄÒµÎñ´úÂëÖУ¬Âß¼­ÍùÍù²¢·Ç"Ò»·«·ç˳"£¬ÓÐÐí¶àif-else»á×±µãÎÒÃǵÄÒµÎñ´úÂë¡£ÏÔÈ»¶ÔÓÚÕâÀàÒµÎñ´úÂ룬"Ò»¸ö"²âÊÔÓÃÀýÎÞ·¨ÍêÈ«Âú×ãËùÓпÉÄܳöÏֵij¡¾°¡£Èç¹ûΪÁË͵ÀÁ£¬³¢ÊÔ½ö½öÓÃ"Ò»¸ö"ÓÃÀýÈ¥¸²¸ÇÖ÷Á÷³Ì£¬ÎÞÒìÓÚ¸ø×Ô¼ºÂñÁ˸öÀסª¡ªÏßÉϳ¡¾°¿Éû"Ò»¸ö"ÓÃÀýÕâô¼òµ¥£¡

ÎÒ¿ªÊ¼×¨×¢ÓÚ²âÊÔÓÃÀýµÄÉè¼Æ£¬´ÓÊäÈëÊä³ö¿ªÊ¼£¬ÖØÐÂÉóÊÓÔø¾­¿ª·¢¹ýµÄ´úÂë¡£ÎÒ·¢ÏÖ£¬Èç¹û½«Ä³¸öcontroller·½·¨×÷ΪÈë¿Ú£¬ÄÇÕâÒ»Ì×ÒµÎñÁ÷³Ì¿ÉÒÔµ±×öÒ»ÌõÁ´Â·£¬¶øÉÏÏÂÎÄÖÐËù¹ØÁªµÄservice²ã¡¢dao²ã¡¢api²ãµÄ¸÷·½·¨¶¼¿ÉÒÔ×÷ΪÁ´Â·Éϵĸ÷»·½Ú¡£Í¨¹ý»æÖÆÁ´Â·Í¼£¬½«¸÷»·½Ú¸ù¾ÝÊÇ·ñ¹ØÁªÍⲿϵͳ´óÖ·ֳɺڡ¢°×Á½À࣬ÕûÌ×ÒµÎñÁ÷³ÌºÍ¸÷»·½ÚµÄDZÔÚ·ÖÖ§±ã»á±äµÃÇåÎú£¬²âÊÔÓÃÀý±ã´Ó"Ò»¸ö"×ÔÈ»¶øÈ»µØ±ä³ÉÁË"Ò»Ì×"¡£´Ë´¦¶àÌáÒ»×죬Á´Â·Ë¼ÏëÉè¼ÆÓÃÀýµÄ»ù´¡ÊǽṹÇåÎú¡¢È¦¸´ÔӶȿɿØÖƵĴúÂë·ç¸ñ£¬Èç¹û¿ª·¢µÄʱºòÒÀÈ»×ð³ç"ÂÛÎÄʽ"¡¢"Ò»µ¶Á÷"£¬ÔÚµ¥¸ö·½·¨ÄÚ"³¤Æª´óÂÛ"£¬ÄÇÁ´Â·Ê½½«ÊÇÒ»¸ö¾Þ´óµÄ¸ºµ£¡£

±àд²âÊÔÓÃÀýÆäʵ²»ÊÇÒ»¼þ·Ñ¾¢µÄÊ£¬¶ÔÓÚÉî¸ûÒµÎñ´úÂëµÄ¿ª·¢¶øÑÔ£¬±àд²âÊÔÓÃÀý±ãÏñÊÇ×öÒ»ÅÌС²Ë£¬¾ÙÊÖ¿ÉΪ¡£ÓÚÎÒ¶øÑÔ£¬Èç½ñд²âÊÔÓÃÀýËù»¨·ÑµÄʱ¼äÉõÖÁûÓÐÉè¼Æ²âÊÔÓÃÀýµÄʱ¼ä³¤(͹ÏÔÓÃÀýÉè¼ÆµÄÖØÒªÐÔµ«Ò²ÓпÉÄÜÊÇÎÒ¶Ô²âÊÔÓÃÀýµÄÉè¼Æ»¹²»¹»ÊìÁ·)¡£ÔÚ²âÊÔ¿ò¼ÜÑ¡ÐÍÉÏ£¬ÎÒ¸üϰ¹ßÓÚJunit+MockitoµÄ×éºÏ£¬Ô­Òò½ö½öÊÇÊìϤÓë¼òµ¥£¬ÇҲο¼Îĵµ±È±È½ÔÊÇ¡£Èç¹û¸÷λÒѾ­ÓÐ×Ô¼ºÏ°¹ßµÄ¿ò¼ÜºÍд·¨£¬Ò²²»±ØÕÕ°á±¾ÎÄËùÌá¼°µÄ¶«Î÷£¬±Ï¾¹µ¥²âÊÇΪÁËbetter code£¬¶ø²»ÊÇ×ÔÕÒÂé·³¡£

µ«ÎÞÂÛ²âÊÔÓÃÀýÈçºÎÉè¼Æ»òÊÇÈçºÎ±àд£¬ÎÒʼÖÕÈÏΪ£¬ÔÚ²»¿¼ÂDzâÊÔ´úÂëµÄ·ç¸ñºÍ¹æ·¶µÄǰÌáÏ£¬ºâÁ¿²âÊÔÓÃÀýÖÊÁ¿µÄºËÐÄÖ¸±êÊÇ·ÖÖ§¸²¸ÇÂÊ¡£ÕâÒ²ÊÇÎÒÍÆ¼öÁ´Â·Ë¼ÏëµÄÒ»´óÔ­Òò¡ª¡ª´ÓÈë¿Ú³ö·¢£¬±éÀúÁ´Â·Éϸ÷¸ö»·½ÚµÄ¸÷¸ö·ÖÖ§£¬Óöµ½×è°­¾ÍMock£»Ïà±ÈÓڷֱ𵥲â¸÷¸ö¶ÀÁ¢·½·¨£¬µ¥²âÁ´Â·ËùÐèÒªµÄÈë²ÎºÍ³ö²Î¸ü¼ÓÇåÎú£¬¸üÊÇ´ó´ó½ÚÊ¡Á˱àд²âÊÔ´úÂëËùÐèµÄʱ¼ä³É±¾£¡¼ÆËã·ÖÖ§¸²¸ÇÂʵŤ¾ßÓкܶ࣬ÀýÈç±¾µØµÄJaCoCo»òÊǸ÷ÀàÔÆ»¯²âÊÔ¹¤¾ß¡£ÊÔÏ룬ÿµ±¿´µ½µ¥²âÍêÃÀµØ¸²¸ÇÁË×Ô¼ºËùÌá½»µÄÌØÐÔ´úÂëʱ£¬ÐÄÀïÊDz»ÊÇ·ÅÐÄÁËÐí¶à£¿

Èý ÈçºÎÓÃÁ´Â·Ë¼ÏëÉè¼Æ/¹¹Ôìµ¥²â£¿

×÷Ϊ³ÌÐòÔ±£¬´ó¼Ò¸üΪÊìϤµÄÁ´Â·¸ÅÄîÓ¦¸ÃÊÇÈ«Á´Â·Ñ¹²â¡£

È«Á´Â·Ñ¹²â¼òµ¥À´Ëµ£¬¾ÍÊÇ»ùÓÚʵ¼ÊµÄÉú²úÒµÎñ³¡¾°¡¢ÏµÍ³»·¾³£¬Ä£Ä⺣Á¿µÄÓû§ÇëÇóºÍÊý¾Ý¶ÔÕû¸öÒµÎñÁ´½øÐÐѹÁ¦²âÊÔ£¬²¢³ÖÐøµ÷ÓŵĹý³Ì£¬±¾ÖÊÉÏÒ²ÊÇÐÔÄܲâÊÔµÄÒ»ÖÖÊֶΡ£... ͨ¹ýÕâÖÖ·½·¨£¬ÔÚÉú²ú»·¾³ÉÏÂ䵨³£Ì¬»¯Îȶ¨Ñ¹²âÌåϵ£¬ÊµÏÖITϵͳµÄ³¤ÆÚÐÔÄÜÎȶ¨ÖÎÀí¡£

Èç¹û½«ÍêÕûµÄÒµÎñÁ÷³ÌÊÓ×÷È«Á´Â·£¬ÄÇ×÷ΪҵÎñÁ´ÉϵÄÒ»»·£¬¼´Ä³¸öºó¶Ë·þÎñ£¬ËüÆäʵҲÊÇÒ»¸ö΢Á´Â·¡£ÕâÀïÒÔ×ÔÉ϶øÏµĿª·¢Á÷³ÌΪÀý£¬¶ÔÓÚÐÂÔöµÄ¹¦Äܽӿڣ¬ÎÒÃÇ»áϰ¹ßÐÔµØÓÉcontroller¿ªÊ¼Éè¼Æ£¬È»ºó¹¹½¨service²ã¡¢dao²ã¡¢api²ã£¬×îºóÔÙ½õÉÏÌí»¨µØ¼ÓЩaop¡£Èç¹ûÒÔÁ´Â·Ë¼Ï룬½«¸´ÔÓµÄÁ÷³Ì²ð³É¸÷¸öÁ´Â·µÄ¸÷¸ö»·½Ú£¬ÄÇÕâÑùµÄ´úÂ빦ÄÜÇåÎú£¬Î¬»¤ÆðÀ´Ò²Ï൱·½±ã¡£Îҷdz£ÈÏͬ ÏÞÖÆµ¥¸ö·½·¨ÐÐÊý<=50 µÄ´úÂëÃŽû£¬¶ÔÓÚ³¤Æª´óÂ۵ĴúÂë¡°ÂÛÎÄ¡±£¬Ïë±ØÃ»ÓÐÄÄλ½ÓÊÖµÄͬѧÁ³ÉÏÄܶ³öЦÈݵģ»Õë¶ÔÕâÀà´úÂ룬ÎÒÈÏΪclean codeµÄÓÅÏȼ¶±È²¹³äµ¥²âÓÃÀý¸ü¸ß£¬Á¬Âß¼­¶¼ÎÞ·¨ÀíÇ壬¼´±ãÓ²×ÅͷƤд³öµ¥²âÓÃÀý£¬ºóÐøµÄµ÷ÊÔºÍά»¤¹¤×÷Á¿Ò²ÊDz»¿ÉÔ¤ÁϵÄ(ÊÔÏ룬¼ÙÈçºóÃæÓÐλAͬѧ½ÓÊÖÁËÕâ¿é´úÂ룬ËûÔÚ¡°ÂÛÎÄ¡±ÖмÓÁËxxÐе¼ÖÂutʧ°ÜÁË£¬Ëû¸ÃÈçºÎÈ¥¶¨Î»ÎÊÌâ)¡£

¼òµ¥»­¸öͼÀ´Ç¿µ÷Ò»ÏÂÎҵĹ۵㡣ÕâÊÇÒ»ÕÅ"Óû§ÂòÖí"µÄ¹¦ÄÜÂß¼­Í¼¡£ÒÔÁ´Â·Ë¼Ï룬¿ª·¢ÈËÔ±½«ÕûÌ×Á÷³Ì²ð·ÖΪÏàÓ¦µÄÁ´Â·»·½Ú£¬º­¸ÇÁËcontroller¡¢service¡¢dao¡¢api¸÷²ã£»ÕûÌõÁ´Â·ÇåÎúÃ÷ÁË£¬Ö»Òª´îÅäÍêÉÆµÄÉÏÏÂÎÄÈÕÖ¾£¬¶¨Î»ÏßÉÏÎÊÌâÒàÊÇÇá¶øÒ×¾Ù¡£

µ±È»£¬»ùÓÚÁ´Â·Ë¼ÏëµÄ¿ª·¢»¹Ô¶Ô¶²»¹»£¬ÔÚ²¹³äµ¥²âÓÃÀýʱ£¬ÎÒÃÇͬÑùÒ²ÄÜÓÃÁ´Â·Ë¼ÏëÀ´¹¹Ôì²âÊÔÓÃÀý¡£²âÊÔÓÃÀýµÄÒªÇóºÜ¼òµ¥£¬ÐèÒª¸²¸Çcontroller¡¢serviceµÈ×ÔÖ÷±àдµÄ´úÂë(¶à·ÖÖ§³¡¾°Ò²ÐèÒªÍêÈ«¸²¸Ç)£¬¶ÔÓÚÖܱ߹ØÁªµÄϵͳ¿ÉÒÔ²ÉÓÃMock½øÐÐÆÁ±Î£¬¶ÔÓÚDao²ãµÄSQL¿ÉÒÔÊÓÐèÇó¾ö¶¨ÊÇ·ñMock¡£±ü³ÐÕâ¸ö˼·£¬ÎÒÃÇ¿ÉÒÔ¶Ô¡°Óû§ÂòÖí¡±Í¼½øÐиÄÔ죬½«ÔÊÐíMockµÄ»·½ÚÍ¿»Ò£¬´Ó¶ø±ä³ÉÎÒÃÇÔÚ±àдµ¥Ôª²âÊÔÓÃÀýʱËùÐèÒªµÄ¡°ÐéÄâÓû§ÂòÖí¡±Í¼¡£

ËÄ ¿ìËÙд·¨Êµ¼ù°¸Àý

1 ¿ìËÙд·¨µÄºËÐIJ½ÖèÓÐÄÄЩ£¿

¿ìËÙд·¨µÄÈë¿ÚÊÇcontroller²ã·½·¨£¬ÕâÑù¶ÔÓÚcontroller²ã´æÔÚµÄÉÙÁ¿Âß¼­´úÂëÒ²ÄÜ×öµ½¸²¸Ç¡£

Éè¼Æ²âÊÔÓÃÀýµÄÊäÈëÓëÔ¤ÆÚÊä³ö

Éè¼Æ²âÊÔÓÃÀýµÄÄ¿µÄ²»½ö½öÊÇÅÜͨÖ÷Á÷³Ì£¬¶øÊÇÒªÅÜͨȫ²¿¿ÉÄܵÄÁ÷³Ì£¬¼´ËùνµÄ·ÖÖ§È«¸²¸Ç£¬Òò´ËÉè¼ÆÓÃÀýµÄÊäÈëÓëÊä³öÓÈÎªÖØÒª¡£¼´±ãÊÇÐÂÔö·ÖÖ§µÄÔöÁ¿ÐÞ¸Ä(ÀýÈç¼ÓÁËÒ»ÐÐif-else)£¬Ò²ÐèÒª²¹³äÏàÓ¦µÄÊäÈëÓëÔ¤ÆÚÊä³ö¡£·Ç³£²»½¨Òé¸ù¾Ýµ¥²âÔËÐнá¹ûÐÞ¸ÄÔ¤ÆÚ½á¹û£¬Õâ˵Ã÷Ô­ÏȵĴúÂëÉè¼ÆÓÐÎÊÌâ¡£

È·¶¨Á´Â·ÉϵÄÈ«²¿Mockµã

MockµãµÄÅжÏÒÀ¾ÝÊÇÁ´Â·Éϸû·½ÚÊÇ·ñÒÀÀµµÚÈý·½·þÎñ¡£Ç¿ÁÒ½¨ÒéÔÚÉè¼ÆÇ°»­³ö´ó¸ÅµÄ¹¦ÄÜÁ÷³Ìͼ(È硱Óû§ÂòÖí¡°Í¼)£¬Õâ¿ÉÒÔ´ó´óÌá¸ßÈ·¶¨MockµãµÄËٶȺÍ׼ȷÐÔ¡£

ÊÕ¼¯MockµãµÄÄ£Äâ·µ»ØÊý¾Ý

È·¶¨Mockµãºó£¬ÎÒÃǾÍÐèÒª¹¹ÔìÏàÓ¦µÄÄ£Äâ·µ»ØÊý¾Ý¡£MockÊý¾ÝÐèÒª¿¼ÂǶà¸öÒòËØ£º

a. ÊÇ·ñÓëapi²ã¶ÔÓ¦·½·¨µÄÆÚÍû·µ»ØÖµÆ¥Åä: ²»ÄܰѴÓÖí³§·µ»ØµÄMockÊý¾ÝÓÃÅ£ÈâÌæ´ú

b. ÊÇ·ñÓëÄ£ÄâÊäÈëÊý¾ÝÆ¥Å䣺Óû§ÐèÒª1½ïÖíÈ⣬²»ÄÜ·µ»Ø5½ïÖíÈâµÄÊý¾Ý

c. ÊÇ·ñÓëapi²ãµÄËùÓзÖÖ§Æ¥Å䣺²¿·Öapi²ã»á¶Ô·µ»ØÖµ½øÐÐÏìÓ¦Âë(2xx || 3xx || 4xx)УÑ飬ÕâÀೡ¾°±ãÐèÒª¹¹Ô첻ͬÏìÓ¦ÂëµÄMockÊý¾Ý

2¡¾¿ª·¢Æª¡¿ÕæÊµÓû§ÂòÖí

¸ÃÏîÄ¿»ùÓÚPandoraBoot¹¹½¨£¬ÊÖ¶¯Éý¼¶SpringBoot°æ±¾ÖÁ2.5.1£¬Ê¹ÓÃMybatis-plus×é¼þ¼ò»¯Dao²ã¿ª·¢¹ý³Ì¡£ÏÂÃæÑ¡È¡ÁËÉÏÎÄͼÖÐËùÉæ¼°µÄÖØÒª·½·¨½øÐÐչʾ£¬½öʵÏÖÁ˼òµ¥µÄÒµÎñÁ÷³Ì£¬ÏµÍ³¿ò¼ÜºÍ¹¤³Ì½á¹¹¿ÉÒԲο¼´úÂë²Ö¡£

ÒµÎñ¶ÔÏó

PorkStorage.java - ÖíÈâ¿â´æµÄÊý¾Ý¿âʵÌåÀà

PorkInst.java - ÖíÈâʵÀý£¬Óɲֿâ´ò°üºóÉú³É

ÒµÎñ´úÂë

PorkController.java

PorkStorageDao.java

PorkStorageDao.xml

FactoryApi.java

FactoryApiImpl.java

WareHouseApi.java

WareHouseApiImpl.java

3¡¾µ¥²âƪ¡¿ÐéÄâÓû§ÂòÖí

µ¥²âÒÀÀµ

¶ÔÓÚPandoraBoot¹¤³Ì£¬¿É²Î¿¼ÏÂÎĵÄMavenÅäÖÃÒýÈëÏà¹ØÒÀÀµ¡£ ¶ÔÓÚ·ÇPandoraBoot¹¤³Ì£¬½öÐèÒýÈëJunitºÍMockitoÁ½¸ö°ü¼´¿É¡£ ×¢±¾ÕÂËùÌáµ½µÄµ¥²âд·¨Ä¬ÈÏMock Dao²ãÇÒÎÞÐèÆô¶¯ÈÝÆ÷Ó¦Óá£Èç¹û²»ÏëMock Dao²ã£¬½¨ÒéÔÚÒÀÀµÖÐÒýÈë H2 ÕâÀàÄÚ´æÐÍÊý¾Ý¿â£¬Í¬Ê±Ö§³Ö±¾µØÆô¶¯ÈÝÆ÷Ó¦Óá£

д·¨Ë¼Â·

ÔÚÔĶÁÏÂÃæµÄÄÚÈÝǰ£¬Ç¿ÁÒ½¨ÒéÏÈѧϰJunitºÍMockitoµÄ»ù±¾Ó÷¨ºÍÔËÐÐÔ­Àí£¬°üÀ¨µ«²»ÏÞÓÚÏÂÎÄд·¨ÖпÉÄÜÉæ¼°µÄ×¢½â£º

JunitÔ­ÉúÁ÷Method×¢½â£º@Before ¡¢@Test¡¢@After

MockitoÔ­ÉúField×¢½â£º@Mock¡¢@InjectMocks¡¢@Spy

ÔÚÒÑÖª´ýµ¥²âÒµÎñÁ´Â·µÄǰÌáÏ£¬Ð´·¨¿ÉÒÔ¼òÒª¹éÄÉΪÒÔϼ¸²½£º

1. ³õ²½Éè¼Æµ¥²âÓÃÀý¿ò¼Ü¡£°üÀ¨setup¡¢teststep¡¢teardownÈý²½£¬setup¸ºÔð´¦ÀíһЩȫ¾Ö±ØÒªµÄµ¥²âǰÖÃÂß¼­(ÀýÈçMockÊý¾Ý²åÈëºÍ»·¾³×¼±¸)£¬teststep³ÐÔØµ¥²âÓÃÀýµÄÖ÷Ìå(ÒªÇóÒÔAssertÀà½üËÆµÄ¶ÏÑÔÓï¾äΪ½áβ)£¬teardown¸ºÔð´¦ÀíһЩȫ¾Ö±ØÒªµÄÊÕβÂß¼­(ÀýÈçMockÊý¾Ýɾ³ýºÍ»·¾³ÊÍ·Å)

2. ÉùÃ÷²¢³õʼ»¯ÓÃÀýËùÉæ¼°µÄËùÓÐÁ´Â·»·½Ú¡£ÔÚÒÑÖªÁ´Â·Á÷³ÌµÄǰÌáÏ£¬ËùÓл·½Ú¶¼¿ÉÒÔÒÀ¾ÝÊÇ·ñΪMockµã·½·¨´óÖ·ÖΪÁ½Àà(²Î¿¼ÉÏÎÄÖÐ"Óû§ÂòÖí"ͼµÄ»Ò¡¢°×µã)¡£
  • ·ÇMockµã·½·¨£º¶ÔÓÚÁ´Â·ÖзÇÈë¿ÚµÄ»·½Ú(ͨ³£½«controller×÷ΪÈë¿Ú£¬ÆäËû·½·¨¼´Îª·ÇÈë¿Ú)£¬ÐèÒª±ê×¢@SpyÒÔÉùÃ÷¸Ã¶ÔÏóÔÚµ¥²âÁ´Â·ÖÐΪ¼àÌý״̬£¬¼´ÐèÒªÕý³£×ßÍêÁ÷³Ì¡£´Ë´¦¸ù¾Ý·½·¨ÄÚÊÇ·ñÒýÓÃMockµã·½·¨½øÒ»²½·Ö³ÉÁ½Àà¡£
  1. ¸Ã·½·¨ÄÚÒýÓÃÁËÆäËûMockµã·½·¨£¬ÐèÒªÔÚ@SpyµÄ»ù´¡É϶îÍâ±ê×¢@InjectMocks£¬ÉùÃ÷¸Ã¶ÔÏóÔÚµ¥²âÁ´Â·ÖÐÐèÒª±»×¢ÈëÆäËûMock¶ÔÏó¡£

  2. ¸Ã·½·¨ÄÚδÒýÓÃÆäËûMockµã·½·¨£¬ÎÞÐè½øÐÐÆäËû²Ù×÷¡£
  • Mockµã·½·¨£º±ê×¢@MockÒÔÉùÃ÷¸Ã¶ÔÏóÔÚµ¥²âÁ´Â·ÖÐÐèÒª±»Mock£¬¿ÉÒÔͨ¹ýorg.mockito.MockitoÀàÄÚµÄһϵÁÐstatic·½·¨ÊÖ¶¯×¢ÈëMockÖµ(ep. when(A()).thenReturn(B))¡£

3. ±àдµ¥²âÓÃÀýÖ÷Ìå¡£ÔÚteststepÖдÓcontroller²ã·¢Æð·½·¨µ÷Óã¬×îÖÕͨ¹ýAssert¶ÏÑÔ½á¹ûÅжÏÓÃÀýµÄ³É¹¦Óë·ñ¡£³ýÁËÆÕͨµÄ·µ»ØÖµÐ£Ñ鳡¾°Í⣬JunitÒ²Ö§³ÖÓÃ@Test(expected = xxException.class)À´ÉùÃ÷¸ÃÓÃÀýÆÚÍû·¢ÉúµÄÒì³£ÀàÐÍ¡£×îºó»¹Êǽ¨ÒéдÍêµ¥²âºóÄܹ»ÒÔ×¢Ê͵ÄÐÎʽ˵Ã÷¸Ãµ¥²âËùÖ§³ÖµÄ³¡¾°ºÍÔ¤ÆÚ½á¹ûµÄ´óÖÂ˵Ã÷£¬·½±ãÒÔºó×Ô¼ººÍÆäËû½ÓÊÖµÄͬѧÄܹ»¿ìËÙÁ˽âÕâ¸öµ¥²âÓÃÀýµÄÏà¹ØÐÅÏ¢¡£

ÕâÀïÈÔÒÔ"Óû§ÂòÖí"µÄ³¡¾°ÎªÀý£¬ÒÀÕÕÁ´Â·Ë¼Ï룬µ±·þÎñ¶ËÊÕµ½Óû§¹ºÂòÖíÈâµÄÇëÇóʱ£¬ÎÒÃÇ¿ÉÒÔ¹¹Ôì³öÈçÏ·ÖÖ§³¡¾°£º

  1. controller²ã´æÔÚ¿ÉÄܳö¿Ú£¬¼´weight == null¡£¾Ý´ËÉú³É²âÊÔÓÃÀýA£¬ÃüÃûΪtestBuyPorkIfWeightIsNull£¬Êµ¼ÊÈë²ÎÖÐweight==null£¬ÆÚÍû½Ó¿ÚÅ׳öÒì³££»

  2. °´Á´Â·½øÈëµ½PigServiceImplÖУ¬´æÔÚ¿ÉÄܳö¿Ú£¬¼´hasStore() == false¡£¾Ý´ËÉú³É²âÊÔÓÃÀýB£¬ÃüÃûΪtestBuyPorkIfStorageIsShortage£¬Êµ¼ÊÈë²ÎÖÐweight±ØÐè´óÓÚ¿â´æÖµ(Èç´úÂëÖÐsetupÔ¤Éè¿â´æÎª10£¬ÐéÄâÓû§ÇëÇóÁË20)£¬ÆÚÍû½Ó¿ÚÅ׳öÒì³££»

  3. °´Á´Â·¼ÌÐøÖ´ÐУ¬·¢ÏÖÕý³£³ö¿Ú¡£¾Ý´ËÉú³É²âÊÔÓÃÀýC£¬ÃüÃûΪtestBuyPorkIfResultIsOk£¬Êµ¼ÊÈë²ÎÖÐweight±ØÐëСÓÚ¿â´æÖµ(Èç´úÂëÖÐsetupÔ¤Éè¿â´æÎª10£¬ÐéÄâÓû§ÇëÇóÁË5)£¬ÆÚÍû½Ó¿Ú·µ»ØÓëÈë²ÎÏàÆ¥ÅäµÄ·µ»ØÖµÒ»Ö£¬¼´Õý³£·µ»ØÁËweightΪ5µÄÖíÈâ´ò°üʵÀý¡£

µ¥²â´úÂë

 
   
1678 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨²âÊÔ
΢·þÎñ¼Ü¹¹ÏµIJâÊÔÖ®µÀ
´ÓÁã¿ªÊ¼ÕÆÎÕ΢·þÎñÈí¼þ²âÊÔ
ÈçºÎ½øÐвâÊÔÐèÇó·ÖÎö£º´Ó½ÓÊÕÐèÇóµ½ÓÃÀýÉè¼Æ
python_selenium×Ô¶¯»¯²âÊÔ¿ò¼Ü
×îпγÌ
²âÊÔÐèÇó·ÖÎöÓë²âÊÔÓÃÀýÉè¼Æ
ÐÔÄܲâÊÔ·½·¨Óë¼¼Êõ
×Ô¶¯»¯²âÊÔ¿ò¼ÜÉè¼Æ¸ß¼¶Êµ¼ù
½Ó¿Ú×Ô¶¯»¯²âÊÔ·½·¨Ó빤¾ß
Èí¼þ²âÊÔ·½·¨Óëʵ¼ù(¹á´©°¸Àý)
³É¹¦°¸Àý
ij֧¸¶ÆóÒµ µ¥Ôª²âÊÔÓëÖØ¹¹Åàѵ
±±¾© Óû§ÌåÑé¡¢¿ÉÓÃÐÔ²âÊÔÓëÆÀ¹À
ij¾ü¹¤Ñо¿µ¥Î» ×Ô¶¯»¯²âÊÔ·½·¨¡¢°¸ÀýÓ빤¾ß
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ̽Ë÷ÐÔ²âÊÔÓë²âÊÔ·ÖÎö
±±¾© º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Èí¼þ²âÊԼܹ¹Ê¦