±à¼ÍƼö: |
±¾ÎÄÀ´×Ô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ÊôÐÔ¼´¿É£¬Ê±¼äµ¥Î»ÎªºÁÃ룺
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°´Å¥£¬¾ÍÉú³ÉÁ˶ÔÓ¦µÄ²âÊÔ´úÂ룬Óû§Ö»ÐèÒªÍêÉÆ¿ò¼ÜÀïÃæµÄ¾ßÌå²âÊÔÂß¼¾Í¿ÉÒÔÁË¡£ |