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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Spring Boot µ¥Ôª²âÊÔJUnitµÄʵ¼ù
 
  4847  次浏览      27
 2019-3-15 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×Ôjb51£¬±¾ÎĽéÉÜÁ˵¥Ôª²âÊÔ¿ò¼ÜJUnitÒÔ¼°JUnitµÄ¿ª·¢»·¾³ºÍʹÓõÈÏà¹ØÄÚÈÝ¡£

Ò»¡¢½éÉÜ

JUnitÊÇÒ»¿îÓÅÐãµÄ¿ªÔ´Javaµ¥Ôª²âÊÔ¿ò¼Ü£¬Ò²ÊÇĿǰʹÓÃÂÊ×î¸ß×îÁ÷ÐеIJâÊÔ¿ò¼Ü£¬¿ª·¢¹¤¾ßEclipseºÍIDEA¶ÔJUnit¶¼ÓкܺõÄÖ§³Ö£¬JUnitÖ÷ÒªÓÃÓڰ׺вâÊԺͻعé²âÊÔ¡£

<!--more-->

°×ºÐ²âÊÔ£º°Ñ²âÊÔ¶ÔÏó¿´×÷Ò»¸ö´ò¿ªµÄºÐ×Ó£¬³ÌÐòÄÚ²¿µÄÂß¼­½á¹¹ºÍÆäËûÐÅÏ¢¶Ô²âÊÔÈË Ô±Êǹ«¿ªµÄ£»

»Ø¹é²âÊÔ£ºÈí¼þ»ò»·¾³ÐÞ¸´»ò¸üÕýºóµÄÔÙ²âÊÔ£»

µ¥Ôª²âÊÔ£º×îСÁ£¶ÈµÄ²âÊÔ£¬ÒÔ²âÊÔij¸ö¹¦ÄÜ»ò´úÂë¿é¡£Ò»°ãÓɳÌÐòÔ±À´×ö£¬ÒòΪËüÐèÒªÖªµÀÄÚ²¿³ÌÐòÉè¼ÆºÍ±àÂëµÄϸ½Ú£»

JUnit GitHubµØÖ·£ºhttps://github.com/junit-team

¶þ¡¢JUnitʹÓÃ

¿ª·¢»·¾³£º

Spring Boot 2.0.4 RELEASE

JUnit 4.12

Maven

IDEA 2018.2

2.1 ¼ì²âJUnitÒÀÀµ

Èç¹ûÊÇSpring BootÏîĿĬÈÏÒѾ­¼ÓÈëÁËJUnit¿ò¼ÜÖ§³Ö£¬¿ÉÔÚpom.xmlÖв鿴£º

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>

Èç¹ûMavenÏîÄ¿ÖÐûÓÐÌí¼ÓJUnitÒÀÀµ£¬¿É²ÎÕÕÈçÉÏ´úÂ룬ÊÖ¶¯Ìí¼Ó¡£

2.2 »ù´¡Ê¹ÓÃ

¼òµ¥µÄ²âÊÔ´úÂëÈçÏ£º

@RunWith(SpringRunner.class) @SpringBootTestpublic class SimpleTest { @Test public void doTest() { int num = new Integer(1); Assert.assertEquals(num, 1); } }

ÔÚ²âÊÔÀàÖÐÓʼþÔËÐÐÏîÄ¿£¬Ð§¹ûÈçÏ£º

´Ó¿ØÖÆÌ¨¿ÉÒÔ¿´³ö²âÊÔͨ¹ýÁË¡£

2.3 ×¢½â˵Ã÷

2.3.1 ×¢½âÁбí

@RunWith£º±êʶΪJUnitµÄÔËÐл·¾³£»

@SpringBootTest£º»ñÈ¡Æô¶¯Àà¡¢¼ÓÔØÅäÖã¬È·¶¨×°ÔØSpring Boot£»

@Test£ºÉùÃ÷ÐèÒª²âÊԵķ½·¨£»

@BeforeClass£ºÕë¶ÔËùÓвâÊÔ£¬Ö»Ö´ÐÐÒ»´Î£¬ÇÒ±ØÐëΪstatic void£»

@AfterClass£ºÕë¶ÔËùÓвâÊÔ£¬Ö»Ö´ÐÐÒ»´Î£¬ÇÒ±ØÐëΪstatic void£»

@Before£ºÃ¿¸ö²âÊÔ·½·¨Ç°¶¼»áÖ´Ðеķ½·¨£»

@After£ºÃ¿¸ö²âÊÔ·½·¨Ç°¶¼»áÖ´Ðеķ½·¨£»

@Ignore£ººöÂÔ·½·¨£»

2.3.2 ³¬Ê±²âÊÔ

´úÂëÈçÏ£¬¸øTestÉèÖÃtimeoutÊôÐÔ¼´¿É£¬Ê±¼äµ¥Î»ÎªºÁÃ룺

@Test(timeout = 1000)

2.4 ¶ÏÑÔ²âÊÔ

¶ÏÑÔ²âÊÔÒ²¾ÍÊÇÆÚÍûÖµ²âÊÔ£¬Êǵ¥Ôª²âÊԵĺËÐÄÒ²¾ÍÊǾö¶¨²âÊÔ½á¹ûµÄ±í´ïʽ£¬Assert¶ÔÏóÖеĶÏÑÔ·½·¨£º

Assert.assertEquals ¶Ô±ÈÁ½¸öÖµÏàµÈ

Assert.assertNotEquals ¶Ô±ÈÁ½¸öÖµ²»ÏàµÈ

Assert.assertSame ¶Ô±ÈÁ½¸ö¶ÔÏóµÄÒýÓÃÏàµÈ

Assert.assertArrayEquals ¶Ô±ÈÁ½¸öÊý×éÏàµÈ

Assert.assertTrue ÑéÖ¤·µ»ØÊÇ·ñÎªÕæ

Assert.assertFlase ÑéÖ¤·µ»ØÊÇ·ñΪ¼Ù

Assert.assertNull ÑéÖ¤null

Assert.assertNotNull ÑéÖ¤·Çnull

´úÂëʾÀýÈçÏ£º

@Testpublic void doTest() { String[] string1 = {"1", "2"}; String[] string2 = string1; String[] string3 = {"1", "2"}; Assert.assertEquals(string1, string2); Assert.assertEquals(string2, string3); Assert.assertSame(string1, string2); Assert.assertSame(string2, string3); //ÑéÖ¤²»Í¨¹ý£¬string2¡¢string3Ö¸ÏòµÄÒýÓò»Í¬ }

2.5 WebÄ£Äâ²âÊÔ

ÔÚSpring BootÏîÄ¿ÀïÃæ¿ÉÒÔÖ±½ÓʹÓÃJUnit¶ÔwebÏîÄ¿½øÐвâÊÔ£¬Spring ÌṩÁË¡°TestRestTemplate¡±¶ÔÏó£¬Ê¹ÓÃÕâ¸ö¶ÔÏó¿ÉÒԺܷ½±ãµÄ½øÐÐÄ£ÄâÇëÇó¡£

Web²âÊÔÖ»ÐèÒª½øÐÐÁ½²½²Ù×÷£º

ÔÚ@SpringBootTest×¢½âÉÏÉèÖá°ebEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT¡±Ëæ»ú¶Ë¿Ú£»

ʹÓÃTestRestTemplate½øÐÐpost»ògetÇëÇó£»

ʾÀý´úÂëÈçÏ£º

@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class UserControllerTest { @Autowired private TestRestTemplate restTemplate; @Test public void getName() { String name = restTemplate.getForObject("/name", String.class); System.out.println(name); Assert.assertEquals("Adam", name); } }

ÆäÖÐgetForObjectµÄº¬Òå´ú±íÖ´ÐÐgetÇëÇ󣬲¢·µ»ØObject½á¹û£¬µÚ¶þ¸ö²ÎÊýÉèÖ÷µ»Ø½á¹ûΪStringÀàÐÍ£¬¸ü¶àµÄÇëÇó·½·¨£º

getForEntity£ºGetÇëÇ󣬷µ»ØÊµÌå¶ÔÏ󣨿ÉÒÔÊǼ¯ºÏ£©£»

postForEntity£ºPostÇëÇ󣬷µ»ØÊµÌå¶ÔÏ󣨿ÉÒÔÊǼ¯ºÏ£©£»

postForObject£ºPostÇëÇ󣬷µ»Ø¶ÔÏó£»

2.6 Êý¾Ý¿â²âÊÔ

ÔÚ²âÊÔÊý¾Ý²Ù×÷µÄʱºò£¬ÎÒÃDz»ÏëÈòâÊÔÎÛȾÊý¾Ý¿â£¬Ò²ÊÇ¿ÉÒÔʵÏֵģ¬Ö»ÐèÒªÌí¼Ó¸ø²âÊÔÀàÉÏÌí¼Ó¡°@Transactional¡±¼´¿É£¬ÕâÑù¼È¿ÉÒÔ²âÊÔÊý¾Ý²Ù×÷·½·¨£¬ÓÖ²»»áÎÛȾÊý¾Ý¿âÁË¡£

ʾÀý´úÂëÈçÏ£º

@Test@Transactionalpublic void saveTest() { User user = new User(); user.setName("Adam"); user.setAge(19); user.setPwd("123456"); userRepository.save(user); System.out.println("userId:" + user.getId()); Assert.assertTrue(user.getId()>0); }

Ö´ÐÐЧ¹ûÈçÏ£º

ÎÒÃÇ¿ÉÒÔ¿´µ½IdÓÐÁË£¬Ò²²âÊÔͨ¹ýÁË£¬ËµÃ÷Êý¾ÝÊÇÌí¼ÓÊÇÕý³£µÄ£¬µ«²é¿´Êý¾Ý¿â·¢ÏÖÊý¾ÝÀïÃæÊÇûÓÐÕâÌõÊý¾ÝµÄ¡£

Èç¹û°Ñ¡°@Transactional¡±È¥µôµÄ»°£¬Êý¾Ý¿â¾Í»áÕý³£²åÈëÁË¡£

2.7 Idea¿ìËÙ¿ªÆô²âÊÔ

ÔÚIdeaÀïÃæ¿ÉÒÔ¿ìËÙµÄÌí¼Ó²âÊԵķ½·¨£¬Ö»ÐèÒªÔÚÒª²âÊÔµÄÀàÀïÃæÓÒ¼üÑ¡Ôñ¡°GoTo¡±µã»÷¡°Test¡±£¬Ñ¡ÔñÄãÐèÒª²âÊԵĴúÂ룬µã»÷Éú³É¼´¿É£¬Èç¹ûÊÇWindows Óû§¿ÉÒÔʹÓÃĬÈÏ¿ì½Ý¼ü¡°Ctrl + Shift + T¡±£¬Ð§¹ûÈçÏÂͼ£º

Ñ¡Íê·½·¨Ö®ºó£¬µã»÷OK°´Å¥£¬¾ÍÉú³ÉÁ˶ÔÓ¦µÄ²âÊÔ´úÂ룬Óû§Ö»ÐèÒªÍêÉÆ¿ò¼ÜÀïÃæµÄ¾ßÌå²âÊÔÂß¼­¾Í¿ÉÒÔÁË¡£

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

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

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

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