::: Zany's Homepage ::: Zany Wiki | »çÀÌÆ® ÅëÇÕ °Ë»ö
 
 
 

[Spring] Spring Boot 1.4 Å×½ºÆà °³¼± »çÇ×

°Ô½ÃÆÇ
JAVA
ÀÛ¼ºÀÚ
helix
ÀÛ¼ºÀÏ
2016-09-28 09:50:03
ÀÐÀº¼ö
1901
ÆòÁ¡
   
Ç¥½Ã¿É¼Ç
HTML»ç¿ë | ÀÚµ¿BRűנ| °ø¹é¹®ÀÚÇã¿ë | °¡¿îµ¥Á¤·Ä | °íÁ¤Æø±Û²Ã | ÀÚµ¿URL¸µÅ© | ¸¶¿ì½º¼±ÅÃ
°ü·Ã¸µÅ©01
http://https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4 
- ¿ÏÀüÈ÷ ºÐ¸®µÈ ±¸Á¶·Î °¢ µ¶¸³ ÆÄÆ®°¡ ´ÜÀ§ Å×½ºÆ® µÇµµ·Ï Çضó.
- »ý¼ºÀÚ ÁÖÀÔ(constructor injection)À» »ç¿ëÇÏ¿© ¿ÀºêÁ§Æ®¸¦ ÀνºÅϽºÈ­Çضó.
  Çʵå ÁÖÀÔ(field injection)À» »ç¿ëÇÏÁö ¸¶¶ó. Å×½ºÆ® Äڵ带 ÀÛ¼ºÇϱ⠾î·Æ´Ù.
½ºÇÁ¸µ 4.3 ¿¡¼­ »ý¼ºÀÚ ÁÖÀÔÀ» »ç¿ëÇÏ´Â ÄÄÆ÷³ÍÆ®´Â ÀÛ¼ºÇÏ±â ¸Å¿ì ½¬¿ì¸ç @Autowired °¡ ´õÀÌ»ó ÇÊ¿ä¾ø´Ù.
ÇϳªÀÇ »ý¼ºÀÚ°¡ ÀÖ´Â °æ¿ì ½ºÇÁ¸µÀº ¹¬½ÃÀûÀ¸·Î ±×°É autowire ´ë»óÀ¸·Î °£ÁÖÇÏ°Ô µÈ´Ù.
¡Ü ¾Æ·¡¿Í °°Àº ÄÄÆ÷³ÍÆ®°¡ ÀÖ´Â °æ¿ì (»ý¼ºÀÚ°¡ 1°³ÀÓ)
¡Ü MyComponent Å×½ºÆ®¸¦ À§ÇØ ¾Æ·¡¿Í °°ÀÌ °£´ÜÈ÷ Á÷Á¢ »ý¼ºÇÏ¿© ¸Þ¼­µå¸¦ È£ÃâÇÏ¸é µÈ´Ù.


¡Ü Spring Boot 1.3 ¿¡¼­´Â...
¡Ü @ContextConfiguration ¾î³ëÅ×À̼ǰú SpringApplicationContextLoader Á¶ÇÕÀ¸·Î ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇßÀ» °ÍÀÌ´Ù.
¡Ü ¾Æ·¡¿Í °°ÀÌ @SpringApplicationConfiguration ¾î³ëÅ×À̼ÇÀ» »ç¿ëÇßÀ»¼öµµ ÀÖ°í,
¡Ü @IntegrationTest ¾î³ëÅ×À̼ÇÀ» Á¶ÇÕÇßÀ» ¼öµµ ÀÖ´Ù.
¡Ü @WebIntegrationTest ¾î³ëÅ×À̼ÇÀ» »ç¿ëÇßÀ»¼öµµ ÀÖÀ» °ÍÀÌ´Ù. (¶Ç´Â @IntegrationTest + @WebAppConfiguration Á¶ÇÕµµ °¡´ÉÇÏ´Ù)
@WebIntegrationTest(randomPort=true) ·Î ·£´ý Æ÷Æ®·Î ½ÇÇàÇϰųª,
@IntegrationTest("myprop=myvalue") ³ª @TestPropertySource(properties="myprop=myvalue") ¿Í °°ÀÌ ÇÁ·ÎÆÛƼ°ªÀ» »ç¿ëÇßÀ»¼öµµ ÀÖÀ»°ÍÀÌ´Ù.


¡Ü Spring Boot 1.4 ¿¡¼­´Â...
Spring Boot 1.4 ¿¡¼­´Â Á» ´õ ´Ü¼øÇØÁ®¼­, @SpringBootTest ¾î³ëÅ×ÀÌ¼Ç ´Ü Çϳª¸¸ »ç¿ëÇÏ¿© 
ÀϹÝÀûÀÎ Å×½ºÆ®¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Ù. ¸î°¡Áö ÀÎÀÚµéÀº µÚ¿¡¼­ ¾ð±ÞÇÑ´Ù.
¡Ü Spring Boot 1.4 ÅëÇÕ Å×½ºÆ®´Â ¾Æ·¡¿Í °°Àº ÇüÅÂÀÌ´Ù.
@RunWith(SpringRunner.class) ´Â JUnit ¿¡°Ô ½ºÇÁ¸µ Å×½ºÆ® Áö¿ø(Spring's testing support)À» »ç¿ëÇÏ°Ú´Ù°í ¾Ë·ÁÁÖ´Â ±¸¹®ÀÌ´Ù.
SpringRunner ´Â SpringJUnit4ClassRunner ÀÇ »õ·Î¿î À̸§ÀÌ´Ù. Á» ´õ ´«¿¡ Àß µé¾î¿Â´Ù.

@SpringBootTest ¾î³ëÅ×À̼ÇÀº "½ºÇÁ¸µ Å×½ºÆ® Áö¿øÀÇ ºÎÆ®½ºÆ®·¦ ÀÔ´Ï´Ù (bootstrap with Spring Boot's support)" ¶ó´Â °É ÀǹÌÇÑ´Ù.
(e.g. load application.properties and give me all the Spring Boot goodness)

webEnvironment ¼Ó¼ºÀº Å×½ºÆ®¸¦ À§ÇØ ÁöÁ¤ÇÑ À¥ ȯ°æ ¼³Á¤À» Çã¿ëÇÏ°Ú´Ù´Â ¶æÀÌ´Ù.
MOCK ¼­ºí¸´ ȯ°æ ¶Ç´Â ·£´ý(RANDOM_PORT)À̳ª ÁöÁ¤(DEFINED_PORT)Æ÷Æ®·Î ½ÇÇàµÇ´Â
½ÇÁ¦ HTTP ¼­¹ö·Î Å×½ºÆ®¸¦ ½ÃÀÛÇÒ ¼ö ÀÖ´Ù.

ÁöÁ¤ÇÑ È¯°æÀ» ºÒ·¯¿À±â À§ÇØ @SpringBootTest ÀÇ ¼Ó¼ºÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

Å×½ºÆ®´Â ¸ÕÀú @Configuration ÀÌ ºÙÀº Ŭ·¡½ºµéÀ» ·ÎµåÇÏ·Á°í ½ÃµµÇÒ °ÍÀÌ°í,
½ÇÆÐÇÑ´Ù¸é @SpringBootApplication °¡ ºÙÀº Ŭ·¡½º¸¦ ãÀ» °ÍÀÌ´Ù.


@SpringBootTest ¾î³ëÅ×À̼ÇÀº ȯ°æÀ¸·Î Á¤ÀÇµÉ Ãß°¡ ¼Ó¼ºÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Â "properties" ¼Ó¼ºÀ» Á¦°øÇÑ´Ù.
ÇÁ·ÎÆÛƼµéÀº @TestPropertySource ¾î³ëÅ×À̼ǰú ¿ÏÀüÀÌ µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ·ÎµåµÈ´Ù.


¡Ü ¾Æ·¡´Â ½ÇÁ¦ REST ¿£µåÆ÷ÀÎÆ®¸¦ È£ÃâÇÏ´Â ¿¹Á¦ÀÌ´Ù.
@SpringBootTest °¡ »ç¿ëµÇ¾ú±â ¶§¹®¿¡ TestRestTemplate ÀÌ bean À¸·Î½á »ç¿ëµÉ ¼ö ÀÖÀ½¿¡ ÁÖ¸ñÇÏÀÚ.
http://localhost:${local.server.port} ÀÇ »ó´ë °æ·Î(relative paths)·Î 󸮵ȴÙ.
Å×½ºÆ®½Ã »ç¿ëµÇ´Â ¼­¹ö¿¡ ½ÇÁ¦ Æ÷Æ®¸¦ ÁÖÀÔÇϱâ À§ÇØ @LocalServerPort ¾î³ëÅ×À̼ÇÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.


½ÇÁ¦ ½Ã½ºÅÛ¿¡¼­ Å×½ºÆ®ÇÒ ¶§, ÁöÁ¤ÇÑ ºó(bean)µéÀ» ¸ñ¾Æ¿ô(mock out)ÇÏ´Â °ÍÀÌ µµ¿òÀÌ µÈ´Ù´Â °É ¾Ë ¼ö ÀÖ´Ù.
¼­ºñ½º ½Ã¹Ä·¹À̼ÇÀ» Æ÷ÇÔÇÏ´Â ¸ñÅ·(mocking)ÀÇ ÀϹÝÀûÀÎ ½Ã³ª¸®¿À´Â
Å×½ºÆ®°¡ ½ÇÇà ÁßÀÏ ¶§´Â »ç¿ëÇÒ ¼ö ¾ø´Ù´Â °Í ¶Ç´Â ¶óÀÌºê ½Ã½ºÅÛ¿¡¼­ ¹ß»ý½ÃÅ°±â ¾î·Á¿î Å×½ºÆ® ½ÇÆÐ ½Ã³ª¸®¿ÀÀÌ´Ù.
- Common scenarios for mocking include simulating services that you can¡¯t use when running tests,
- or testing failure scenarios that are difficult to trigger in a live system.

Spring Boot 1.4 ¿¡¼­´Â ÀÌ¹Ì Á¸ÀçÇÏ´Â ºó(bean)À» ´ëüÇϰųª »õ·Î »ý¼ºÇÏ´Â Mockito ¸¦ ¼Õ½±°Ô ¸¸µé¼ö ÀÖ´Ù.
- With Spring Boot 1.4 you can easily create a Mockito mocks that can replace an existing bean, 
- or create a new one
- VehicleDetailsService ÀÇ ¸ðÇü(mock)À¸·Î Mockito ¸¦ »ý¼ºÇÑ´Ù.
- ºó(bean)À¸·Î½á ApplicationContext ¿¡ ÁÖÀÔÇÑ´Ù.
- Å×½ºÆ®ÀÇ Çʵå·Î ÁÖÀÔÇÑ´Ù.
- setup ¸Þ¼­µå¿¡ ÇàÀ§ÀÚ(behavior)¸¦ ±â¼úÇÑ´Ù.
- Trigger something that will ultimately call the mock.
¸ðÇü(mocks)Àº Å×½ºÆ®¸¦ Åë°úÇϸ鼭 ÀÚµ¿À¸·Î ¸®¼ÂµÉ °ÍÀÌ´Ù.



 °Ô½ÃÆÇ ±Û ¸ñ·Ï
No Subject Poster Hits Posted
13764 helix 2365 2016-10-07 15:42:35
13744 helix 2560 2016-09-30 13:50:40
13740 helix 2411 2016-09-29 18:57:13
13739 helix 3442 2016-09-29 17:04:44
13738 helix 4697 2016-09-29 16:32:23
helix 1901 2016-09-28 09:50:03
13733 helix 2114 2016-09-27 17:24:48
13730 helix 1009 2016-09-27 11:13:00
13729 helix 8028 2016-09-27 10:12:57
13724 helix 2393 2016-09-26 17:35:48
13573 helix 8818 2016-07-28 09:49:13
ÄÚ¸àÆ®
ÀÛ¼ºÀÚ
                       
 
zany.kr
  Copyright ¨Ï 2002-2010 Zany's Programming Lab. All Rights Not Reserved.
temporary This Page loads on 0.016 Secs