ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
TDD - Test Driven Development
TDD - Test Driven Development
? TDD?? (Test-Driven Development, TDD, ???????)
1999?? XP(Extreme Programing)?? ??? ??? ?? ???? ?? ?? ? ?? ??? ???.
TDD? ???, ?? ?? ??? ??? "????? ???? ?? ???? ?? ???? ?"??? ??? ?? ?
?? ?? ??. ?, ??? ?? ?? ??? ??? ?? ????? ???.
? ? ?? ???, ??? ? ??? ???? ?? ???? ??? ?? ???? ??? ?????? ???? ?
?? ??.
??)
??? : sum
Argument : int a, int b
Return Type : int
???? : a + b ?? ?? ??? ??. ?, sum(10,10) ? ?? ?? 20.
?? ?? ??? ?? ?? ?? ??, ?? ?? ?? ? ???? ????? ???? ????.
? TDD? ??
? ???? ??? ??.(work + clean)
?? + ???? ??? + ??? + ??X
? TDD ??
?? -> ?? -> ?? -> ??
?? : ??? ??? ??, ???? ????.(??? ????? ??) -> "??? ???? ????? ??????"
?? : ???? ???? ??? ????, ??? ????.(??? ????? ??)
?? : ?????, ????? ????, ??? ??? ?? ? ??? ??? ????.(????)
< ?????? >
??? ?? ????? ?? ?? ?? ???? ???? ?? ??? "???(Agile=???, ???? ??? ???? ??? ?) ?
?? ???? ? ?? ??? ??? ??? ??? ???.
- ????? ?? ???? ?? ??? ??? ???? ??? ??? ???? ?? ???? ???? ?? ?? ???.
- ????? ?? ???? ????, ??? ?? ?? ??
- ¡°Agile¡±?? ??????? ???? ????? ???? ?? ???? ??? ? ??? ???? ????? ?? ???.
TDD - Test Driven Development
? TDD ??
- ??? ??? ?????? ??
Why? ????? ????? ???? ??? ?? ????.
- ??? ??? ??
???? ??? ???, ?? ?? ?? ??? ???? ???? ? ??? ??? ? ??.
- ?? ??
??? ??? ?? ?, ???, ??, ??? ?? ??? ??? ??? ??? ???? ?? ???? ????
??.
? TDD ??
??? ?? ?? ?? ???? ??? ?????, ?? ??? ??? ? ??.
????? TDD? ?????(?? ?????? ?? ??? ?? ?? ? ??.)
-> ??? ???? ???? ?? ??.
? TDD ????
TDD : Test Driven Development (??? ?? ??)
?? ??? ? ??????, TDD?? ??? ??? ???.
TDD? ??? ???????, ??? ???? ???? ??.
(????? ?? ???? ??? ??? ?? ?? ??? ? ? ?? ??? ??)
(???? JUnit?? ??? ??? ? ??? ??? ?? ?? ??? ??.)
?????, TDD? ??? ????? ??? ??? ??? ?? ????.(???)
?????, ??? ??? ??? ?? ???? ??? ? ?????? ???? ??? ??? ??? ??? ???
???? ?? ??? ????? ??.
TDD? ?? ?? ?? : http://yisangwook.tumblr.com/post/83725422949/tdd-is-dead-long-live-testing
? JUnit ?
TDD : Test Driven Development (??? ?? ??) ? ??? ?? ??? ??.
xUnit ????? ??? ??? ?? ??? ??????? ??? ?? ??? ??.
TDD ?? ?? ???? ???????, ???? ???? ??
1998?? ?? ??? ??, ???? ???? ??.
-> ????? : ?? ????? ???? ?? ?? ??(Unit) ????? ????? ????? ??? ?? ?
? JUnit ??
- ?? ??? Framework ? ??
- ?? ?? GUI ???? ???
- ????? ??? ???? ?? ??? ???(assertEquals(?? ?, ?? ?))
- ??????? ???? ???
- ??? ??(??), ??(???) ? ??? ??
- ??? ??, ?? ??? ???? ??? ?? ?? ?? ??(http://blog.naver.com/kcwwck77/220268539987)
? JUnit 4.x ??(??? 4.x? ?? ??)
- Java 5?? ?? ??.(1.5)
- ????? ??.
- Hamcrest ??.
- ????, ??, ????
3.x VS 4.x
Feature JUnit 3.x JUnit 4.x
test annotation testXXX pattern @Test
run before the first test method in the current
class is invoked
None @BeforeClass
run after all the test methods in the current cla
ss have been run
None @AfterClass
run before each test method override setUp() @Before
run after each test method override tearDown() @After
ignore test Comment out or remove code @ignore
expected exception catch exception assert s)uccess @Test(expected = ArithmeticException.class)
timeout None @Test(timeout = 1000
@Test
???? ??? ???? ???? ???? ???? ???? ??? ??? ??? test? ???? ??? ??? ???.
JUnit4.x? ??? ??? ??? ???? @Test ?????? ??? ??? ???? ??.
@Before / After
??? ??? ???? JUnit4.x ??? ??? @Before? @After?? ??? ??????? ??.
? ???? ???(? ?? ???? ???? ?? ??)
- assertArrayEquals(a,b) : ?? a?b? ???? ??
- assertEquals(a,b) : ?? a?b? ?? ??? ??
- assertSame(a,b) : ?? a?b? ?? ???? ??
- assertTrue(a) : a? ??? ??
- assertNotNull(a) : a??? null? ??? ??
??? ???? ?? ??? ????.
assert? ????, ? ??, ?/??, Null ?? ?? ???.
??)
@Test
public void testCalsum() throws Exception {
Cal cal = new Cal();
assertEquals(30, cal.sum(10, 20)); //if(cal.sum(10,20) == 30){}
}
? JUnit ??
JUnit? ?????, ??? ???? ???? ??? ??? ??? ???? ??? ??? ????
? ??? Test Runner(??? ??)
JUnit ?????? ??? ??? ?? ???? ??? ??? ??? ??? ???? ?? ???? Test Runner
?? ??.
? ??? ??? ??? ???? ??? ?? ??? ????? ???? ??? ???? ??? ??.
????? JUnit? ??? BlockJUnit4ClassRunner ?? ??? ?? ???? ??.
??, @RunWith ?????? ??? BlockJUnit4ClassRunner ??? ?? ???? ???? ??? ?????
????? ??? ????.
??)
@RunWith(SpringJUnit4ClassRunner.class)
-> ??? ?????? ??? ?? ???, ??? ???? ??? ??.
????? ??? ??, ???? ??? ??? ???? ????? ???? ??.
(??? ????? ????? ???? ??? ??)
? ????? ?? : Hamcrest(?????)
jMock??? Mock ????? ???? ??? ??? ?? Matcher ??????.
??? ???? ??? ?, ? ? ????? ?????, ??? ??? ?? ? ?? ????.
?? ?? ???? JUnit? ?? ??? ???? ???.
Matcher : ?? ?? ??? ?? ? ???? ??? ???? ?? ???? ???? ??? ??.
(Java ????? ??, ???????)
JUnit4.4??? ?? ?????? ??? ????.(????, ????? ?????? ???? ????)
Mock ? -> http://arone.tistory.com/198
? Hamcrest(?????) ?? ??
- ????? ??? ??? ??? ??? ????.
- ??? ?? ??? ??? ??? ??.
??)
Hamcrest ?????? ????? assertEquals ??? assertThat??? ????? ??
assertEquals(30, cal.sum(10, 20));
assertTrue(cal.sum(10, 20) == (Integer)30);
->
assertThat(cal.sum(10, 20), is(30));
assertThat(cal.sum(10, 20), is(equalTo(30)));
? ??? ???? ?????..?? ?? ?? ??? ??? ???? ??? ??? ???.
??? ????? ??? ??? ??? ????? ??? ?? Hamcrest? ?? ????.
is, equalTo ?? ???? Matcher ??? ??.
?? : http://bluebreeze.co.kr/508
? ??? Web Application Test
- ???? ??
- ? ???? ??
- Test? URL(URI)? ??
- ? ??? ??
? ????, ??? ???? ???? ?? ?? ??? ?????, ?????? ??? ?? ??.
- DAO, ???, ????, JSP ? ?? ??? ? ??? ??? ???? ????? ?? ????.
- ???? ?? ?? ??? ??? ?????, ?? ???? ??? ????? ?? ??? ??.
- ??? ?? ???? ???? ??? ? ? ??.
????
Test?
? ?? ??? Test + ?? ?? Test ?? + ???? ??? ???? ??
- ?????? ?? ??? ????? ? ???? ??.(????, ?? ??? ??? ??)
- ?? ??? ? ?? ???? ???? Test ??? ??.(???? ??? ???)
- Test ?? ??? ??, ??? ??? ?? ???? ??? ???? ??? ??.(??? ?? ???? ??)
?? ??, Spring? JUnit ?????(Test ??)? ?????.
? Spring??? Test ??
- ??? ??? ??, ???? ? ??? ??? ??? ??.
- ??? ?? ??? ??? ??? ?? ??.
- ??? ??? ?? ?? ??? ?.
Connection ?? Test(mariaDB)
JUnit Test Success
??, ?? Test? ??? ??
Mybatis ?? ? ??? ??????
? Spring??? Controller ??? ??
- WAS? ????? ??
- ???? ??? ??? ??
Spring-test? ???? ??? ? ???? WAS?
Servlet ?? ??? ????? ??? ?? ?? ??.
??? ???? ?????? @WebAppConfiguration
?????? ?????, ??? ??? ???? ??
? MVC? ??? ??? ???? ?? ? ??
MockMvc? ?????? ??? ??? ???? ??? ??
testDoA()? ??, MockMvc? ???? preform()?
?? ???? ???? ??? ?? get(), post() ?
? ???? GET ???? POST ??? ??? ??.
MockMvc??? ?? ?? ??, WebApplicationContext ??
? Spring??? Test ?? ? ??
Spring??? ???? ?? ???? ??. MVC ????? ????, ??? ??? ????? ???? ???
??, ??? ??? ??? ? ??? ????? ?????. ??? ?, ???? ?????? ????? ???
???? ??? ?? ?? ? ? ???, TDD ??? Spring?? ?? ???? ??? ? ? ??.
????? Spring? ???? ???? ????? ????? ????? ???? ?? ?? ? ???? ???
?? ???.
???, ????? ??? ??? ??? ????? ???? ???
???? ?? ?? ?? ? ??? ???? ??? ?? ??? ???? ????. ??? ??? ?? ?? ??
??? ???? ??? ????? ??? ??? ?? ??? ??.
? ? ???? ?????? ?? ?? ??? ???? ??? ?????? ?????, ?? ?? ? ? ???
?? ???? ??? ??? ??? ??? ???? ?? ?? ??? ?? ???? ? ??.
? JSP ??? ???? ??? ???? ???? ?? WAS? ???? ???? ??? ???? ???? ??
? ?? ??? ????.
? ?????? ?? ????? ??? ? ?? ??? ??? ?? ? ??? ??? ? ?? ??? ????.
???, ???? ?? ? ??? ¡®??¡¯??? ????. ???? ???? ??? ?? ??? ??? ?? ???
???? ???? ??? ????? ??? ??? ??? ????.
??? ??? ????? ??

More Related Content

What's hot (19)

Effective unit testing ch3. ???????????
Effective unit testing   ch3. ???????????Effective unit testing   ch3. ???????????
Effective unit testing ch3. ???????????
YongEun Choi
?
TDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDDTDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDD
Suwon Chae
?
? ????(Mock Object)? ??
? ????(Mock Object)? ??? ????(Mock Object)? ??
? ????(Mock Object)? ??
Yong Hoon Kim
?
TEST?
TEST?TEST?
TEST?
beom kyun choi
?
Effective unit testing - ???????????? ??
Effective unit testing - ???????????? ??Effective unit testing - ???????????? ??
Effective unit testing - ???????????? ??
YongEun Choi
?
katalon studio ?? ??? GUI ??? ??? ???
katalon studio ?? ??? GUI ??? ??? ???katalon studio ?? ??? GUI ??? ??? ???
katalon studio ?? ??? GUI ??? ??? ???
SangIn Choung
?
Devon 2011-b-5 ???? ??? ?? ???
Devon 2011-b-5 ???? ??? ?? ???Devon 2011-b-5 ???? ??? ?? ???
Devon 2011-b-5 ???? ??? ?? ???
Daum DNA
?
Io t??? ??????????_????
Io t??? ??????????_????Io t??? ??????????_????
Io t??? ??????????_????
SangIn Choung
?
X unit 14?
X unit 14?X unit 14?
X unit 14?
Park Min Wook
?
Introduce Katalon tool
Introduce Katalon toolIntroduce Katalon tool
Introduce Katalon tool
?? ?
?
Tdd live spring camp 2013
Tdd live spring camp 2013Tdd live spring camp 2013
Tdd live spring camp 2013
beom kyun choi
?
Postman? Newman? ??? RestAPI ??? ??? ???
Postman? Newman? ??? RestAPI ??? ??? ??? Postman? Newman? ??? RestAPI ??? ??? ???
Postman? Newman? ??? RestAPI ??? ??? ???
SangIn Choung
?
??????? TDD
??????? TDD??????? TDD
??????? TDD
Sunghyouk Bae
?
Backend Master | 3.2.1 Test - JUnit
Backend Master | 3.2.1 Test - JUnitBackend Master | 3.2.1 Test - JUnit
Backend Master | 3.2.1 Test - JUnit
Kyunghun Jeon
?
???????
??????????????
???????
?? ?
?
Check style ??????????
Check style ??????????Check style ??????????
Check style ??????????
rupert kim
?
?????? ????
?????? ?????????? ????
?????? ????
SangIn Choung
?
Effective unit testing ch3. ???????????
Effective unit testing   ch3. ???????????Effective unit testing   ch3. ???????????
Effective unit testing ch3. ???????????
YongEun Choi
?
TDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDDTDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDD
Suwon Chae
?
? ????(Mock Object)? ??
? ????(Mock Object)? ??? ????(Mock Object)? ??
? ????(Mock Object)? ??
Yong Hoon Kim
?
Effective unit testing - ???????????? ??
Effective unit testing - ???????????? ??Effective unit testing - ???????????? ??
Effective unit testing - ???????????? ??
YongEun Choi
?
katalon studio ?? ??? GUI ??? ??? ???
katalon studio ?? ??? GUI ??? ??? ???katalon studio ?? ??? GUI ??? ??? ???
katalon studio ?? ??? GUI ??? ??? ???
SangIn Choung
?
Devon 2011-b-5 ???? ??? ?? ???
Devon 2011-b-5 ???? ??? ?? ???Devon 2011-b-5 ???? ??? ?? ???
Devon 2011-b-5 ???? ??? ?? ???
Daum DNA
?
Io t??? ??????????_????
Io t??? ??????????_????Io t??? ??????????_????
Io t??? ??????????_????
SangIn Choung
?
Introduce Katalon tool
Introduce Katalon toolIntroduce Katalon tool
Introduce Katalon tool
?? ?
?
Tdd live spring camp 2013
Tdd live spring camp 2013Tdd live spring camp 2013
Tdd live spring camp 2013
beom kyun choi
?
Postman? Newman? ??? RestAPI ??? ??? ???
Postman? Newman? ??? RestAPI ??? ??? ??? Postman? Newman? ??? RestAPI ??? ??? ???
Postman? Newman? ??? RestAPI ??? ??? ???
SangIn Choung
?
Backend Master | 3.2.1 Test - JUnit
Backend Master | 3.2.1 Test - JUnitBackend Master | 3.2.1 Test - JUnit
Backend Master | 3.2.1 Test - JUnit
Kyunghun Jeon
?
???????
??????????????
???????
?? ?
?
Check style ??????????
Check style ??????????Check style ??????????
Check style ??????????
rupert kim
?

Similar to TDD - Test Driven Development (20)

Okjsp 13?? ????: ?? ????? Test
Okjsp 13?? ????: ?? ????? TestOkjsp 13?? ????: ?? ????? Test
Okjsp 13?? ????: ?? ????? Test
beom kyun choi
?
TDD or TFD
TDD or TFDTDD or TFD
TDD or TFD
young-il Park
?
Programming java day2
Programming java day2Programming java day2
Programming java day2
Jaehoonyam
?
???? ??? ????? ?? ?? ??
???? ??? ????? ?? ?? ?????? ??? ????? ?? ?? ??
???? ??? ????? ?? ?? ??
SangIn Choung
?
Sonarqube 20160509
Sonarqube 20160509Sonarqube 20160509
Sonarqube 20160509
?? ?
?
Android unit testing
Android unit testingAndroid unit testing
Android unit testing
Hyeoungkyu Chang
?
???? ??? ??? ?? (??????? 3? 2?)
???? ??? ??? ?? (??????? 3? 2?)???? ??? ??? ?? (??????? 3? 2?)
???? ??? ??? ?? (??????? 3? 2?)
SangIn Choung
?
??? ???? ??? ?(Shift left testing)
??? ???? ??? ?(Shift left testing)??? ???? ??? ?(Shift left testing)
??? ???? ??? ?(Shift left testing)
SangIn Choung
?
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005
Ryan Park
?
ParameterizedTest ?? ContextCaching.pptx
ParameterizedTest ?? ContextCaching.pptxParameterizedTest ?? ContextCaching.pptx
ParameterizedTest ?? ContextCaching.pptx
junu6
?
Introduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&CIntroduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&C
sys4u
?
?????? ???????? ???? ???????? ????????? (The inquiry method for test planning)
?????? ???????? ???? ???????? ????????? (The inquiry method for test planning)?????? ???????? ???? ???????? ????????? (The inquiry method for test planning)
?????? ???????? ???? ???????? ????????? (The inquiry method for test planning)
Joseph Yonggoo Yeo
?
Tdd
TddTdd
Tdd
savemyface
?
S66 goos-w7
S66 goos-w7S66 goos-w7
S66 goos-w7
?? ?
?
Spring test mvc ?????????
Spring test mvc ?????????Spring test mvc ?????????
Spring test mvc ?????????
?? ?
?
Robot framework ??? ???????? ????? ?????? ???????
Robot framework ??? ???????? ????? ?????? ???????Robot framework ??? ???????? ????? ?????? ???????
Robot framework ??? ???????? ????? ?????? ???????
Jaehoon Oh
?
»Ø¹úÈ¥ÄÄÂò±ÏÒµÖ¤°ìµÏ¿Ï´óѧ±ÏÒµÖ¤Deakin±ÏÒµÖ¤Ê顾Q΢202-661-4433¡¿ DeakinÊÛ°ÄÖÞ±ÏÒµÖ¤Ô­°æбÏÒµÖ¤Êé³öÊÛ¸÷¹ú±ÏÒµÖ¤Âò°ÄÖÞ±ÏÒµÖ¤µÄ¼Û...
»Ø¹úÈ¥ÄÄÂò±ÏÒµÖ¤°ìµÏ¿Ï´óѧ±ÏÒµÖ¤Deakin±ÏÒµÖ¤Ê顾Q΢202-661-4433¡¿ DeakinÊÛ°ÄÖÞ±ÏÒµÖ¤Ô­°æбÏÒµÖ¤Êé³öÊÛ¸÷¹ú±ÏÒµÖ¤Âò°ÄÖÞ±ÏÒµÖ¤µÄ¼Û...»Ø¹úÈ¥ÄÄÂò±ÏÒµÖ¤°ìµÏ¿Ï´óѧ±ÏÒµÖ¤Deakin±ÏÒµÖ¤Ê顾Q΢202-661-4433¡¿ DeakinÊÛ°ÄÖÞ±ÏÒµÖ¤Ô­°æбÏÒµÖ¤Êé³öÊÛ¸÷¹ú±ÏÒµÖ¤Âò°ÄÖÞ±ÏÒµÖ¤µÄ¼Û...
»Ø¹úÈ¥ÄÄÂò±ÏÒµÖ¤°ìµÏ¿Ï´óѧ±ÏÒµÖ¤Deakin±ÏÒµÖ¤Ê顾Q΢202-661-4433¡¿ DeakinÊÛ°ÄÖÞ±ÏÒµÖ¤Ô­°æбÏÒµÖ¤Êé³öÊÛ¸÷¹ú±ÏÒµÖ¤Âò°ÄÖÞ±ÏÒµÖ¤µÄ¼Û...
asfasf4
?
Legacy code refactoring video rental system
Legacy code refactoring   video rental systemLegacy code refactoring   video rental system
Legacy code refactoring video rental system
Jaehoon Oh
?
Okjsp 13?? ????: ?? ????? Test
Okjsp 13?? ????: ?? ????? TestOkjsp 13?? ????: ?? ????? Test
Okjsp 13?? ????: ?? ????? Test
beom kyun choi
?
Programming java day2
Programming java day2Programming java day2
Programming java day2
Jaehoonyam
?
???? ??? ????? ?? ?? ??
???? ??? ????? ?? ?? ?????? ??? ????? ?? ?? ??
???? ??? ????? ?? ?? ??
SangIn Choung
?
Sonarqube 20160509
Sonarqube 20160509Sonarqube 20160509
Sonarqube 20160509
?? ?
?
???? ??? ??? ?? (??????? 3? 2?)
???? ??? ??? ?? (??????? 3? 2?)???? ??? ??? ?? (??????? 3? 2?)
???? ??? ??? ?? (??????? 3? 2?)
SangIn Choung
?
??? ???? ??? ?(Shift left testing)
??? ???? ??? ?(Shift left testing)??? ???? ??? ?(Shift left testing)
??? ???? ??? ?(Shift left testing)
SangIn Choung
?
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005
Ryan Park
?
ParameterizedTest ?? ContextCaching.pptx
ParameterizedTest ?? ContextCaching.pptxParameterizedTest ?? ContextCaching.pptx
ParameterizedTest ?? ContextCaching.pptx
junu6
?
Introduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&CIntroduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&C
sys4u
?
?????? ???????? ???? ???????? ????????? (The inquiry method for test planning)
?????? ???????? ???? ???????? ????????? (The inquiry method for test planning)?????? ???????? ???? ???????? ????????? (The inquiry method for test planning)
?????? ???????? ???? ???????? ????????? (The inquiry method for test planning)
Joseph Yonggoo Yeo
?
S66 goos-w7
S66 goos-w7S66 goos-w7
S66 goos-w7
?? ?
?
Spring test mvc ?????????
Spring test mvc ?????????Spring test mvc ?????????
Spring test mvc ?????????
?? ?
?
Robot framework ??? ???????? ????? ?????? ???????
Robot framework ??? ???????? ????? ?????? ???????Robot framework ??? ???????? ????? ?????? ???????
Robot framework ??? ???????? ????? ?????? ???????
Jaehoon Oh
?
»Ø¹úÈ¥ÄÄÂò±ÏÒµÖ¤°ìµÏ¿Ï´óѧ±ÏÒµÖ¤Deakin±ÏÒµÖ¤Ê顾Q΢202-661-4433¡¿ DeakinÊÛ°ÄÖÞ±ÏÒµÖ¤Ô­°æбÏÒµÖ¤Êé³öÊÛ¸÷¹ú±ÏÒµÖ¤Âò°ÄÖÞ±ÏÒµÖ¤µÄ¼Û...
»Ø¹úÈ¥ÄÄÂò±ÏÒµÖ¤°ìµÏ¿Ï´óѧ±ÏÒµÖ¤Deakin±ÏÒµÖ¤Ê顾Q΢202-661-4433¡¿ DeakinÊÛ°ÄÖÞ±ÏÒµÖ¤Ô­°æбÏÒµÖ¤Êé³öÊÛ¸÷¹ú±ÏÒµÖ¤Âò°ÄÖÞ±ÏÒµÖ¤µÄ¼Û...»Ø¹úÈ¥ÄÄÂò±ÏÒµÖ¤°ìµÏ¿Ï´óѧ±ÏÒµÖ¤Deakin±ÏÒµÖ¤Ê顾Q΢202-661-4433¡¿ DeakinÊÛ°ÄÖÞ±ÏÒµÖ¤Ô­°æбÏÒµÖ¤Êé³öÊÛ¸÷¹ú±ÏÒµÖ¤Âò°ÄÖÞ±ÏÒµÖ¤µÄ¼Û...
»Ø¹úÈ¥ÄÄÂò±ÏÒµÖ¤°ìµÏ¿Ï´óѧ±ÏÒµÖ¤Deakin±ÏÒµÖ¤Ê顾Q΢202-661-4433¡¿ DeakinÊÛ°ÄÖÞ±ÏÒµÖ¤Ô­°æбÏÒµÖ¤Êé³öÊÛ¸÷¹ú±ÏÒµÖ¤Âò°ÄÖÞ±ÏÒµÖ¤µÄ¼Û...
asfasf4
?
Legacy code refactoring video rental system
Legacy code refactoring   video rental systemLegacy code refactoring   video rental system
Legacy code refactoring video rental system
Jaehoon Oh
?

More from ChangHyeon Bae (16)

????, ???, IIFE
????, ???, IIFE????, ???, IIFE
????, ???, IIFE
ChangHyeon Bae
?
Webpack&babel
Webpack&babelWebpack&babel
Webpack&babel
ChangHyeon Bae
?
ES6-02
ES6-02ES6-02
ES6-02
ChangHyeon Bae
?
ES6-01
ES6-01ES6-01
ES6-01
ChangHyeon Bae
?
javascript03
javascript03javascript03
javascript03
ChangHyeon Bae
?
javascript02
javascript02javascript02
javascript02
ChangHyeon Bae
?
javascript01
javascript01javascript01
javascript01
ChangHyeon Bae
?
Java memory
Java memoryJava memory
Java memory
ChangHyeon Bae
?
JavaScript ??????? ???
JavaScript ??????? ???JavaScript ??????? ???
JavaScript ??????? ???
ChangHyeon Bae
?
WAS? ??? ?? ??
WAS? ??? ?? ??WAS? ??? ?? ??
WAS? ??? ?? ??
ChangHyeon Bae
?
REST Concept
REST ConceptREST Concept
REST Concept
ChangHyeon Bae
?
Srping data rest
Srping data restSrping data rest
Srping data rest
ChangHyeon Bae
?
Angular ?? ??? ??.
Angular ?? ??? ??.Angular ?? ??? ??.
Angular ?? ??? ??.
ChangHyeon Bae
?
OOP - Object Oriendted Programing
OOP - Object Oriendted ProgramingOOP - Object Oriendted Programing
OOP - Object Oriendted Programing
ChangHyeon Bae
?
DI - Dependency Injection
DI - Dependency InjectionDI - Dependency Injection
DI - Dependency Injection
ChangHyeon Bae
?
CDN - Content Delivery Network
CDN - Content Delivery NetworkCDN - Content Delivery Network
CDN - Content Delivery Network
ChangHyeon Bae
?

TDD - Test Driven Development

  • 3. ? TDD?? (Test-Driven Development, TDD, ???????) 1999?? XP(Extreme Programing)?? ??? ??? ?? ???? ?? ?? ? ?? ??? ???. TDD? ???, ?? ?? ??? ??? "????? ???? ?? ???? ?? ???? ?"??? ??? ?? ? ?? ?? ??. ?, ??? ?? ?? ??? ??? ?? ????? ???. ? ? ?? ???, ??? ? ??? ???? ?? ???? ??? ?? ???? ??? ?????? ???? ? ?? ??. ??) ??? : sum Argument : int a, int b Return Type : int ???? : a + b ?? ?? ??? ??. ?, sum(10,10) ? ?? ?? 20. ?? ?? ??? ?? ?? ?? ??, ?? ?? ?? ? ???? ????? ???? ????. ? TDD? ?? ? ???? ??? ??.(work + clean) ?? + ???? ??? + ??? + ??X ? TDD ?? ?? -> ?? -> ?? -> ?? ?? : ??? ??? ??, ???? ????.(??? ????? ??) -> "??? ???? ????? ??????" ?? : ???? ???? ??? ????, ??? ????.(??? ????? ??) ?? : ?????, ????? ????, ??? ??? ?? ? ??? ??? ????.(????) < ?????? > ??? ?? ????? ?? ?? ?? ???? ???? ?? ??? "???(Agile=???, ???? ??? ???? ??? ?) ? ?? ???? ? ?? ??? ??? ??? ??? ???. - ????? ?? ???? ?? ??? ??? ???? ??? ??? ???? ?? ???? ???? ?? ?? ???. - ????? ?? ???? ????, ??? ?? ?? ?? - ¡°Agile¡±?? ??????? ???? ????? ???? ?? ???? ??? ? ??? ???? ????? ?? ???.
  • 5. ? TDD ?? - ??? ??? ?????? ?? Why? ????? ????? ???? ??? ?? ????. - ??? ??? ?? ???? ??? ???, ?? ?? ?? ??? ???? ???? ? ??? ??? ? ??. - ?? ?? ??? ??? ?? ?, ???, ??, ??? ?? ??? ??? ??? ??? ???? ?? ???? ???? ??. ? TDD ?? ??? ?? ?? ?? ???? ??? ?????, ?? ??? ??? ? ??. ????? TDD? ?????(?? ?????? ?? ??? ?? ?? ? ??.) -> ??? ???? ???? ?? ??.
  • 6. ? TDD ???? TDD : Test Driven Development (??? ?? ??) ?? ??? ? ??????, TDD?? ??? ??? ???. TDD? ??? ???????, ??? ???? ???? ??. (????? ?? ???? ??? ??? ?? ?? ??? ? ? ?? ??? ??) (???? JUnit?? ??? ??? ? ??? ??? ?? ?? ??? ??.) ?????, TDD? ??? ????? ??? ??? ??? ?? ????.(???) ?????, ??? ??? ??? ?? ???? ??? ? ?????? ???? ??? ??? ??? ??? ??? ???? ?? ??? ????? ??. TDD? ?? ?? ?? : http://yisangwook.tumblr.com/post/83725422949/tdd-is-dead-long-live-testing
  • 7. ? JUnit ? TDD : Test Driven Development (??? ?? ??) ? ??? ?? ??? ??. xUnit ????? ??? ??? ?? ??? ??????? ??? ?? ??? ??. TDD ?? ?? ???? ???????, ???? ???? ?? 1998?? ?? ??? ??, ???? ???? ??. -> ????? : ?? ????? ???? ?? ?? ??(Unit) ????? ????? ????? ??? ?? ? ? JUnit ?? - ?? ??? Framework ? ?? - ?? ?? GUI ???? ??? - ????? ??? ???? ?? ??? ???(assertEquals(?? ?, ?? ?)) - ??????? ???? ??? - ??? ??(??), ??(???) ? ??? ?? - ??? ??, ?? ??? ???? ??? ?? ?? ?? ??(http://blog.naver.com/kcwwck77/220268539987)
  • 8. ? JUnit 4.x ??(??? 4.x? ?? ??) - Java 5?? ?? ??.(1.5) - ????? ??. - Hamcrest ??. - ????, ??, ???? 3.x VS 4.x Feature JUnit 3.x JUnit 4.x test annotation testXXX pattern @Test run before the first test method in the current class is invoked None @BeforeClass run after all the test methods in the current cla ss have been run None @AfterClass run before each test method override setUp() @Before run after each test method override tearDown() @After ignore test Comment out or remove code @ignore expected exception catch exception assert s)uccess @Test(expected = ArithmeticException.class) timeout None @Test(timeout = 1000 @Test ???? ??? ???? ???? ???? ???? ???? ??? ??? ??? test? ???? ??? ??? ???. JUnit4.x? ??? ??? ??? ???? @Test ?????? ??? ??? ???? ??. @Before / After ??? ??? ???? JUnit4.x ??? ??? @Before? @After?? ??? ??????? ??.
  • 9. ? ???? ???(? ?? ???? ???? ?? ??) - assertArrayEquals(a,b) : ?? a?b? ???? ?? - assertEquals(a,b) : ?? a?b? ?? ??? ?? - assertSame(a,b) : ?? a?b? ?? ???? ?? - assertTrue(a) : a? ??? ?? - assertNotNull(a) : a??? null? ??? ?? ??? ???? ?? ??? ????. assert? ????, ? ??, ?/??, Null ?? ?? ???. ??) @Test public void testCalsum() throws Exception { Cal cal = new Cal(); assertEquals(30, cal.sum(10, 20)); //if(cal.sum(10,20) == 30){} }
  • 10. ? JUnit ?? JUnit? ?????, ??? ???? ???? ??? ??? ??? ???? ??? ??? ???? ? ??? Test Runner(??? ??) JUnit ?????? ??? ??? ?? ???? ??? ??? ??? ??? ???? ?? ???? Test Runner ?? ??. ? ??? ??? ??? ???? ??? ?? ??? ????? ???? ??? ???? ??? ??. ????? JUnit? ??? BlockJUnit4ClassRunner ?? ??? ?? ???? ??. ??, @RunWith ?????? ??? BlockJUnit4ClassRunner ??? ?? ???? ???? ??? ????? ????? ??? ????. ??) @RunWith(SpringJUnit4ClassRunner.class) -> ??? ?????? ??? ?? ???, ??? ???? ??? ??. ????? ??? ??, ???? ??? ??? ???? ????? ???? ??. (??? ????? ????? ???? ??? ??)
  • 11. ? ????? ?? : Hamcrest(?????) jMock??? Mock ????? ???? ??? ??? ?? Matcher ??????. ??? ???? ??? ?, ? ? ????? ?????, ??? ??? ?? ? ?? ????. ?? ?? ???? JUnit? ?? ??? ???? ???. Matcher : ?? ?? ??? ?? ? ???? ??? ???? ?? ???? ???? ??? ??. (Java ????? ??, ???????) JUnit4.4??? ?? ?????? ??? ????.(????, ????? ?????? ???? ????) Mock ? -> http://arone.tistory.com/198 ? Hamcrest(?????) ?? ?? - ????? ??? ??? ??? ??? ????. - ??? ?? ??? ??? ??? ??. ??) Hamcrest ?????? ????? assertEquals ??? assertThat??? ????? ?? assertEquals(30, cal.sum(10, 20)); assertTrue(cal.sum(10, 20) == (Integer)30); -> assertThat(cal.sum(10, 20), is(30)); assertThat(cal.sum(10, 20), is(equalTo(30))); ? ??? ???? ?????..?? ?? ?? ??? ??? ???? ??? ??? ???. ??? ????? ??? ??? ??? ????? ??? ?? Hamcrest? ?? ????. is, equalTo ?? ???? Matcher ??? ??. ?? : http://bluebreeze.co.kr/508
  • 12. ? ??? Web Application Test - ???? ?? - ? ???? ?? - Test? URL(URI)? ?? - ? ??? ?? ? ????, ??? ???? ???? ?? ?? ??? ?????, ?????? ??? ?? ??. - DAO, ???, ????, JSP ? ?? ??? ? ??? ??? ???? ????? ?? ????. - ???? ?? ?? ??? ??? ?????, ?? ???? ??? ????? ?? ??? ??. - ??? ?? ???? ???? ??? ? ? ??. ???? Test? ? ?? ??? Test + ?? ?? Test ?? + ???? ??? ???? ?? - ?????? ?? ??? ????? ? ???? ??.(????, ?? ??? ??? ??) - ?? ??? ? ?? ???? ???? Test ??? ??.(???? ??? ???) - Test ?? ??? ??, ??? ??? ?? ???? ??? ???? ??? ??.(??? ?? ???? ??) ?? ??, Spring? JUnit ?????(Test ??)? ?????.
  • 13. ? Spring??? Test ?? - ??? ??? ??, ???? ? ??? ??? ??? ??. - ??? ?? ??? ??? ??? ?? ??. - ??? ??? ?? ?? ??? ?. Connection ?? Test(mariaDB) JUnit Test Success ??, ?? Test? ??? ?? Mybatis ?? ? ??? ??????
  • 14. ? Spring??? Controller ??? ?? - WAS? ????? ?? - ???? ??? ??? ?? Spring-test? ???? ??? ? ???? WAS? Servlet ?? ??? ????? ??? ?? ?? ??. ??? ???? ?????? @WebAppConfiguration ?????? ?????, ??? ??? ???? ?? ? MVC? ??? ??? ???? ?? ? ?? MockMvc? ?????? ??? ??? ???? ??? ?? testDoA()? ??, MockMvc? ???? preform()? ?? ???? ???? ??? ?? get(), post() ? ? ???? GET ???? POST ??? ??? ??. MockMvc??? ?? ?? ??, WebApplicationContext ??
  • 15. ? Spring??? Test ?? ? ?? Spring??? ???? ?? ???? ??. MVC ????? ????, ??? ??? ????? ???? ??? ??, ??? ??? ??? ? ??? ????? ?????. ??? ?, ???? ?????? ????? ??? ???? ??? ?? ?? ? ? ???, TDD ??? Spring?? ?? ???? ??? ? ? ??. ????? Spring? ???? ???? ????? ????? ????? ???? ?? ?? ? ???? ??? ?? ???. ???, ????? ??? ??? ??? ????? ???? ??? ???? ?? ?? ?? ? ??? ???? ??? ?? ??? ???? ????. ??? ??? ?? ?? ?? ??? ???? ??? ????? ??? ??? ?? ??? ??. ? ? ???? ?????? ?? ?? ??? ???? ??? ?????? ?????, ?? ?? ? ? ??? ?? ???? ??? ??? ??? ??? ???? ?? ?? ??? ?? ???? ? ??. ? JSP ??? ???? ??? ???? ???? ?? WAS? ???? ???? ??? ???? ???? ?? ? ?? ??? ????. ? ?????? ?? ????? ??? ? ?? ??? ??? ?? ? ??? ??? ? ?? ??? ????. ???, ???? ?? ? ??? ¡®??¡¯??? ????. ???? ???? ??? ?? ??? ??? ?? ??? ???? ???? ??? ????? ??? ??? ??? ????. ??? ??? ????? ??