test

    테스트 코드와 의존성 주입

    톰 롱의 를 읽다가 메모 테스트 코드 작성 시 의존성 주입 사용에 대해 설명하기 위한 예시가 이메일 발송과 관련되어 있다. 이메일 발송 기능이 들어가는 테스트 코드를 작성했던 개인적인 경험(흑역사)이 떠올랐다. 당시 작성했던 코드의 문제를 깨달은 과정을 적어본다. 작가는 아래 두 클래스의 예를 들어 의존성 주입을 사용하면 테스트 용이성이 크게 향상된다고 한다. 의존성을 주입하지 않은 클래스 (not good) // 고객에게 송장 리마인더를 보내는 클래스 class InvoiceReminder { private final AddressBook addressBook; private final EmailSender emailSender; // 여기를 보자! // 의존 객체가 생성자에서 생성된다. // 하드 코..

    JUnit은 JVM에서 돌아가는가?

    게슈탈트 붕괴 마냥 갑자기 JUnit은 JVM에서 돌아가는가? 하는 의문이 생겼다. 내가 JUnit에 대해 이미 알고 있는 내용은 자바 테스트를 하기 위해 JUnit라는 걸 쓴다 자바 언어로 작성한다 org.junit.. 어쩌구 등의 패키지가 있다 IDE를 통해 run 실행하거나 maven, gradle 등을 통해 test 실행한다 자바 코드를 테스트하기 위한 수단이며 그 자체가 자바와 긴밀하다는 건 알겠다. 그래서 JVM에서 돌아가는 건가? 1. JUnit은 유닛 테스트를 위한 자바 프레임워크다. 개발자가 테스트 코드를 만들면 프레임워크는 제어권을 가로채 주도적으로 실행한다. 나는 은연 중에 개발 코드와 테스트 코드를 별개로 생각하고 있었기에 저런 의문이 생겼던 것 같다. 그 둘은 별개가 아니라 같은 ..