본문 바로가기

testing2

직접적인 테스트와 간접적인 테스트 협업 중에 생긴 일화를 바탕으로 직접적인 테스트와 간접적인 테스트에 대한 개인적인 소견에 대해 적어본다. 테스트 코드를 작성하다보면 코드에 대한 테스트가 중복적으로 발생할 여지가 생길 때가 있다. 이 때 테스트를 어디에 짜는 것이 좋을까? 말로만 하면 애매하니 간단한 예제를 들어보자. 우리가 쓰는 신용카드, 체크카드는 유효기간(년, 월)을 갖고 있다. 그리고 해당 유효기간과 동일한 년, 월 까지는 카드가 유효하다. (e.g. 유효기간이 2022년 1월 이라면, 2022년 1월 31일 까지는 해당 카드는 유효하며, 2월 1일 부터는 만료된 것이다) 이 정보를 간단한 엔티티와 엔티티에 대한 정보를 담는 DTO 코드로 옮겨보자. import java.time.LocalDateTime import java.ti.. 2022. 5. 8.
JUnit5 - @TestInstance에 대해 알아보자 다음과 같은 JUnit 테스트 코드가 있다고 해보자. import org.junit.jupiter.api.Test class TestForTestInstance { var number = 0 @Test fun add1() { number++ println("[add1] number is $number") } @Test fun add2() { number+=2 println("[add2] number is $number") } } 테스트를 진행하면 콘솔에 출력되는 number 값은 어떻게 될까? 테스트 순서를 정하지 않아 순서는 몰라도 결과적으로는 둘 중 하나는 number가 3으로 출력되어야 할 것 같다. 테스트를 실행시켜보면 다음과 같이 콘솔에 출력되는 것을 확인할 수 있다. number 값이 테스트 .. 2021. 7. 25.