π‘ ν μ€νΈλ₯Ό ν΄μΌνλ μ΄μ ?
- ν μ€νΈλ μλνλ λλ‘ μ½λκ° μ νν λμνλμ§λ₯Ό νμΈν΄μ λ§λ μ½λλ₯Ό νμ ν μ μκ² ν΄μ£Όλ μμ
- ν μ€νΈμ κ²°κ³Ό μνλ λλ‘ λμ€μ§ μλ κ²½μ° μ½λλ μ€κ³μ κ²°ν¨μ΄ μμμ μ μ μμ
- μ΅μ’ μ μΌλ‘ ν μ€νΈκ° μ±κ³΅νλ©΄ λͺ¨λ κ²°ν¨μ΄ μ κ±°λλ€λ νμ μ μ»μ μ μμ
π‘ μμ λ¨μμ ν μ€νΈ
ν μ€νΈνκ³ μ νλ λμμ΄ λͺ ννλ©΄ κ·Έ λμμλ§ μ§μ€ν΄μ ν μ€νΈνλ κ²μ΄ λ°λμ§νλ€.
λ°λΌμ λΆλ¦¬νκ³ μ§μ€ν΄μ μ κ·Όνμ
μ΄κ²μ λ¨μ ν μ€νΈλΌκ³ νλ€.
μ§κΈκΉμ§ λ§λ€μ΄ μ¨ UserDaoTestλ DBμ μνλ₯Ό ν μ€νΈνκ³ μμ΄ λ¨μ ν μ€νΈλΌκ³ ν΄λ λλ€.
π‘ μλ μν ν μ€νΈ μ½λ
UserDaoTestμ νΉμ§ μ€ νλλ
ν μ€νΈ ν λ°μ΄ν°κ° μ½λλ₯Ό ν΅ν΄ μ 곡λκ³ , ν μ€νΈμ μμ μμ μ½λλ₯Ό ν΅ν΄ μλμΌλ‘ μ€νλ¨μ΄λ€.
μ¦, ν μ€νΈμ μ κ³Όμ μ΄ μλμΌλ‘ μ§νλλ€λ κ²μ΄λ€.
λ°λΌμ ν μ€νΈλ₯Ό μμ£Ό μνν΄λ λΆλ΄μ΄ μλ€.
π‘ UserDaoTestμ λ¬Έμ μ
- μλ νμΈ μμ μ λ²κ±°λ‘μ
λͺ¨λ μλμΌλ‘ μ§ννμ§λ§, μ¬μ ν μ¬λμ λμΌλ‘ νμΈνλ κ³Όμ μ΄ νμν μ½λ
- μ€ν μμ μ λ²κ±°λ‘μ
μ무리 κ°λ¨ν μ€ν κ°λ₯ν λ©μλμ§λ§ λ§€λ² κ·Έκ²μ μ€ννλ κ²μ λ²κ±°λ‘μ
π‘ JUnitμ νμ©ν ν μ€νΈ μ ν
βοΈ JUnitμ΄λ?
μ΄λ¦ κ·Έλλ‘ μλ°λ‘ λ¨μ ν μ€νΈλ₯Ό λ§λ€ λ μ μ©νκ² μΈ μ μκ² λ§λ€μ΄μ£Όλ νλ μμν¬
μꡬνλ 쑰건
- λ©μλκ° publicμΌλ‘ μ μΈλΌμΌ νλ€.
- @TestλΌλ μ λ Έν μ΄μ μ λ©μλ μμ λΆμ¬μ€λ€.
βοΈ JUnit λμ κ³Όμ
- ν μ€νΈ ν΄λμ€μμ @Testκ° λΆμ ν μ€νΈ λ©μλλ₯Ό λͺ¨λ μ°Ύλλ€.
- ν μ€νΈ ν΄λμ€μ μ€λΈμ νΈλ₯Ό νλ λ§λ λ€.
- @Beforeκ° λΆμ λ©μλκ° μμΌλ©΄ μ€ννλ€.
- @Testκ° λΆμ λ©μλλ₯Ό νλ νΈμΆνκ³ ν μ€νΈ κ²°κ³Όλ₯Ό μ μ₯ν΄λλ€.
- @Afterκ° λΆμ λ©μλκ° μμΌλ©΄ μ€ννλ€.
- λλ¨Έμ§ ν μ€νΈ λ©μλμ λν΄ 2~5λ²μ λ°λ³΅νλ€.
- λͺ¨λ ν μ€νΈμ κ²°κ³Όλ₯Ό μ’ ν©ν΄μ λλ €μ€λ€.
π‘ UserDaoTest μ½λ (JUnit) - JUnit λΌμ΄λΈλ¬λ¦¬ μΆκ° νμ!
@Test
public void addAndGet() throws SQLException, ClassNotFoundException {
ApplicationContext context = new AnnotationConfigApplicationContext(DaoFactory.class);
UserDao dao = context.getBean("userDao", UserDao.class);
//...μλ΅
}
π‘ κ²μ¦ μ½λ
assertThat(user2.getName(), is(user.getName())μ μ¬μ©νμ
βοΈ assertThatμ΄λ?
첫λ²μ§Έ νλΌλ―Έν°μ λλ²μ§Έ νλΌλ―Έν°λ₯Ό λΉκ΅ν΄μ ν μ€νΈλ₯Ό ν΄μ€λ€.
λ§μ½, ν μ€νΈ μ€ν¨μ AssertionErrorλ₯Ό λμ§ κ²μ΄λ€.
assertThat(user2.getName(), is(user.getName()));
π§― μ°Έκ³ :
ꡬνμ ν λ, asserThat(user2.getName(), is(user.getName())μμ isμ μλ¬κ° λμλλ°,
JUnit5λ₯Ό μ°κ³ μμΌμλ€λ©΄, μλ 3κ°λ₯Ό importν΄μ£Όλ©΄ ν΄κ²°λλ€.
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
π‘ JUnit ν μ€νΈ μ€ν
JUnitμ νλ μμν¬μ΄κΈ° λλ¬Έμ JUnitμ μμμμΌ μ€μΌ νλ€.
main()λ©μλμ JUnitμ μμμμΌμ£Όλ ν΄λμ€μΈ JUnitCore ν΄λμ€λ₯Ό νΈμΆν΄μ£Όμ
import org.junit.runner.JUnitCore;
public class Main {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// TODO Auto-generated method stub
JUnitCore.main("UserDaoTest");
}
}
μ½λ μ μ₯μ : https://github.com/withseungryu
withseungryu - Overview
exchange student at georgia college & state university - withseungryu
github.com
μ°Έκ³ λ¬Έμ :
ν λΉμ μ€νλ§3 (μ΄μΌλ―Ό)
'Back-end > Spring' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Spring] ν μ€νΈ μ£Όλ κ°λ° (TDD) (0) | 2020.08.12 |
---|---|
[Spring] JUnit - μμΈμ‘°κ±΄μ λν ν μ€νΈ (0) | 2020.08.07 |
[Spring] XMLμ μ΄μ©ν DI μμ‘΄κ΄κ³ μ€μ μ 보 (0) | 2020.08.02 |
[Spring] μμ‘΄μ± μ£Όμ - DI (0) | 2020.08.02 |
[Spring] μ±κΈν€ λ μ§μ€νΈλ¦¬ (0) | 2020.08.02 |