๐ด TDD ๋?
๊ตฌํ์ด ๋จผ์ ๊ฐ ์๋๋ผ ํ ์คํธ๊ฐ ๋จผ์ ๋ค! ํ ์คํธ๋ ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํ๋์ง๋ฅผ ๊ฒ์ฆํ๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ๊ธฐ๋ฅ์ ๊ฒ์ฆํ๋ ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๊ณ ํ ์คํธ๋ฅผ ํต๊ณผ์ํค๊ธฐ ์ํด ๊ฐ๋ฐ์ ์งํํ๋ค.
- ์๊ตฌ ๊ธฐ๋ฅ์ ๋ํ ํ ์คํธ ์ฝ๋ ์์ฑ
- ํ ์คํธ ์ผ์ด์ค๋ฅผ ํต๊ณผํ๊ธฐ ์ํ ์ต์ํ์ ์ฝ๋ ์์ฑ
- ๋ฆฌํํ ๋ง
๐ intellij์์ JUnit ์ค์
- ํ๋ก์ ํธ๋ฅผ ์์ฑํ ํ [File] -> [Project Structure]๋ฅผ ์ ํํด Project Structure ์ฐฝ์ ์ฐ๋ค
- [Modules] -> [Dependencies] ํญ์ ์ ํํ๋ค.
- ์๋ [+]๋ฒํผ -> [Library..] -> [From Maven] ์ ํ
- ์ฐฝ์ด ๋จ๋ฉด org.junit.jupiter:junit-jupiter ๊ฒ์ ํ ๋ง๋ ๋ฒ์ ํด๋ฆญํ๊ณ OK
๐ก ํ๋ก์ ํธ ์์ฑ ๋ฐ testํด๋ ์ง์ ํ๊ธฐ
1. ํ๋ก์ ํธ์์ ์๋์ ๊ฐ์ด main ํด๋์ค๋ฅผ ์ ์ฅํ main๊ณผ ํ ์คํธ ์ฝ๋๋ฅผ ์ ์ฅํ test ์์ฑ
2. testํด๋๋ฅผ ํ ์คํธ๋ก ์ง์
- [File] -> [Project Structure] ๋ก Project Structure ์ฐฝ์ ์ด๊ณ ์ผ์กด ์ต์ ์ค Modules๋ฅผ ์ ํํ๋ค.
- ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด [Sources] -> [Tests]๋ฅผ ์ ํํ๊ณ ํ ์คํธ ์ฝ๋๊ฐ ํฌํจ๋ ํด๋์ ์์น๋ฅผ ์ ํํ๋ค.
- ์ฐ์ธก Test Sources Floder ์๋ ์ํ๋ ๊ฒฝ๋ก๊ฐ ๋ค์ด๊ฐ๋ค๋ฉด ์ฑ๊ณต, OK -> OK -> OK
๐ข ๊ฐ๋จํ ํ ์คํธ ์ฝ๋ ์์ฑํ๊ธฐ
ํ ์คํธํ ๊ธฐ๋ฅ : Caculator ํด๋์ค๋ด์ ๋ง์ ๊ณ์ฐ์ ํ๋ plus๋ฉ์๋
1. ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ์
- Calculator์ plus๋ฉ์๋๋ฅผ ํ ์คํธํ ๊ฑฐ๊ธฐ ๋๋ฌธ์ Caculator ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
- ์คํํ ๊ฒฐ๊ณผ ๊ฐ์ด ๊ธฐ๋๊ฐ๊ณผ ๊ฐ์์ง assertEquals(๊ธฐ๋๊ฐ, ์คํ๊ฐ)๋ก ๊ฒ์ฌํ๋ค.
- ์ด๋ ๊ฒ ์์ฑํ๋ฉด Caculator ํด๋์ค๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋๋ค.
package java;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class CaculatorTest {
@Test
void plus() {
int result = Calculator.plus(1, 2); // ์๋ฌ
assertEquals(3, result);
}
}
2. ํ ์คํธ๋ฅผ ํต๊ณผ์ํค๊ธฐ ์ํด ์๋ฌ๋ฅผ ํด๊ฒฐํ์
- ํ์ฌ ์กด์ฌํ์ง ์์์ ์๋ฌ๊ฐ ๋ฌ Calculator๋ฅผ ์ ํํ ํ [alt+enter] -> [create calss 'Caculator']๋ฅผ ๋๋ฌ ์ํ๋ ์์น์ Caculator๋ฅผ ์์ฑํ๋ค.
- ์ฌ์ฉํ plus ๋ฉ์๋๋ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ plus ๋ฉ์๋๋ ์์ฑํ๋ค.
package main.java;
public class Caculator {
public static int plus(int num1, int num2) {
return num1 + num2;
}
}
3. Test ์คํ
๋ฌธ์ ๊ฐ ์๋ค๋ฉด test๊ฐ ํต๊ณผํ๊ณ ์ค๋ฅ๊ฐ ์๋ค๋ฉด ์ค๋ฅ๊ฐ ๋๋ค.
์คํจํ์ ๋
์ฑ๊ณตํ์ ๋
์ต์ข ํ๋ก์ ํธ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค.
'์๋ฒ > TDD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TDD ๊ณต๋ถ-java] 4) ํ ์คํธ ์ฝ๋ ์์ฑ ๊ฐ์ ์ฌํญ (0) | 2021.07.10 |
---|---|
[TDD ๊ณต๋ถ-java] 3) ์์ธ ์ฒ๋ฆฌ (0) | 2021.06.28 |
[TDD ๊ณต๋ถ-java] 2) ํ ์คํธ ์ฝ๋ ์์ฑ ์์ ์ตํ๊ธฐ (0) | 2021.04.11 |
[TDD ๊ณต๋ถ-java] 0) ์ด๋ป๊ฒ ๋ฌด์์ ๊ณต๋ถํ ์ง (0) | 2021.04.07 |