테스트

    JUnit5 - Java에서의 단위테스트3 - 테스트 인스턴스들

    JUnit은 테스트 메소드 마다 테스트 인스턴스를 새로 만든다. 기본 전략. 테스트 메소드를 독립적으로 실행하여 예상치 못한 부작용을 방지하기 위함이다. 이 전략을 JUnit 5에서 변경할 수 있다. 즉 테스트마다 필드를 공유하지 않는다. 테스트 메서드마다 System.out.println(this) 를 찍어보면 인스턴스가 다르단 걸 알 수 있다. @TestInstance(Lifecycle.PER_CLASS) 테스트 클래스당 인스턴스를 하나만 만들어 사용한다. -> 하나의 인스턴스를 공유한다 경우에 따라, 테스트 간에 공유하는 모든 상태를 @BeforeEach 또는 @AfterEach에서 초기화 할 필요가 있다. @BeforeAll과 @AfterAll을 인스턴스 메소드 또는 인터페이스에 정의한 defau..

    JUnit5 - Java에서의 단위테스트2 - 테스트 반복

    반복해서 테스트를 하고 싶을 때 다음과 같이 사용할 수 있다. @RepeatedTest 반복 횟수와 반복 테스트 이름을 설정할 수 있다. @RepeatedTest(value, name ) 옵션들 {displayName} {currentRepetition} {totalRepetitions} RepetitionInfo 타입의 인자를 받을 수 있다. @RepeatedTest(10) void repeatTest(RepetitionInfo repetitionInfo) { System.out.println("반복 테스트 " + repetitionInfo.getCurrentRepetition() + " \n" + // 현재 반복 횟수 repetitionInfo.getTotalRepetitions()); // 총 반복..

    JUnit5 - Java에서의 단위테스트 1

    Java의 단위 테스트(Unit Test) 테스트 코드를 작성하는 이유 개발 단계에서 테스트 코드를 작성하는 이유는 정말 다양하다. 개발 과정에서 미리 문제를 발견할 수 있다. 코드에 잠재되어있떤 문제를 발견하는데 큰 도움이 된다. 리팩토링의 리스크가 줄어든다. 서비스 업데이트를 하거나 요구사항이 변경되면 코드가 추거되거나 수정되는데, 그 코드에 연관된 다른 코드에 까지 영향을 준다. 코드를 수정하는 과정에서의 버그들이나 잘못된 점을 빠르게 잡을 수 있다. 애플리케이션을 가동해서 직접 테스트하는 것보다 테스트를 빠르게 진행할 수 있다. 테스트 코드를 공유함으로써 이 테스트와 이 기능이 무엇을 하는지 알 수 있다. 하나의 명세 문서로서의 기능을 수행한다 몇 가지 프레임워크에 맞춰 테스트 코드를 작성하면 좋..

    단위테스트, 통합테스트, 인수테스트의 개념

    테스트(Test) 소프트웨어 테스트는 다양한 테스트 들이 있다. 화이트박스 테스트, 블랙박스 테스트, 단위테스트, 통합테스트, 시스템 테스트, 인수 테스트 등 TDD(Test Driven Development) 를 공부하기 전, 단위테스트, 통합테스트, 인수테스트에 대해 개념을 정리하려 한다. 단위테스트(Unit Test) 단위테스트는 응용 프로그램에서 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 테스트가 가능한 가장 작은 소프트웨어나 기능을 실행하여 예상대로 동작하는지 확인하는 테스트이다. 단위 테스트에서 테스트 대상 단위의 크기는 엄격하게 정해져 있지 않다. 하지만 일반적으로 클래스 또는 메서드 수준으로 정해진다. 단위의 크기가 작을수록 단위의 복잡성이 낮아진다. 여기서 ..