본문 바로가기

dev/JUnit

(4)
JUnit5 MethodSource junit에서 @ValueSource, @CsvSource를 사용해서 메소드 파라미터를 전달하여 테스트를 진행합니다. 하지만 복잡한 파라미터를 전달해야 하는 경우 @MethodSource를 사용하면 됩니다.  파라미터를 생성하는 makeParams 메소드를 static으로 선언합니다.(20 ~ 26라인) static으로 선언해야 테스트 메소드를 일관성 있게 실행할 수 있기 때문입니다. File 객체, List 객체, String 객체 3개의 파라미터를  Arguments에 담아 Stream으로 테스트 메소드에 전달합니다.(21 ~ 25라인) 앞에서 작성한 makeParams 메소드로부터 파라미터를 받는 테스트 메소드를 선언합니다.(28 ~ 48라인) @MethodSource 어노테이션을 통해 makePa..
JUnit5 Controller ParameterizedTest junit에서 컨트롤러에 파라미터 전달 테스트 하는 방법입니다. 테스트 코드가 이전 코드와 비슷해서 중복되는 부분은 설명 생략하겠습니다. 42라인: 테스트 메소드에 다양한 입력값으로 여러 번 테스트 실행할 수 있습니다. 단독으로 사용할 수 없기 때문에 @ValueSource나 @CsvSource 등의 어노테이션과 사용해야 합니다. 43라인: csv 형식으로 데이터를 전송합니다. 해당 코드를 테스트 실행하면 위와 같이 정상적으로 종료된 것을 확인할 수 있습니다. junit4에서는 @Parameters 어노테이션으로 2건 이상의 파라미터 테스트가 가능했지만 junit5에서는 @ParameterizedTest 어노테이션을 사용하면 됩니다.
JUnit5 Controller Test junit에서 컨트롤러 단위 테스트 하는 방법입니다. 테스트 코드를 설명드리면 아래와 같습니다. 25라인: junit5에 스프링 테스트 환경을 확장합니다. 26~29라인: 웹 MVC 컨트롤러 단위 테스트 합니다. 테스트 대상은 PayController이고, 스프링 시큐리티 설정은 제외합니다. 30라인: junit5에 테스트 메소드 실행순서를 지원하고 있습니다. 31라인: junit 테스트 클래스 이름을 지정하고 있습니다. 36~37라인: mockMvc 객체를 주입합니다. 39~40라인: PayController에서 사용하는 payService 빈을 Mock 객체로 대신합니다. 42라인: junit에서 테스트하는 메소드를 정의합니다. 43라인: 테스트 메소드 실행 순서를 지정합니다. 47~48라인: 컨트롤..
JUnit5 DB test junit에서 DB 테스트하는 방법입니다. 테스트 코드를 설명하면 아래와 같습니다. 15라인: 스프링 부트 어플리케이션의 컨텍스트를 초기화합니다. 이 어노테이션은 스프링 부트 프로젝트의 설정 및 빈들을 초기화하기 때문에 느리다는 단점이 있습니다. 테스트에 필요한 빈들만 사용하고 싶다면 classes 속성을 사용하면 됩니다. ex) @SpringBootTest(classes = {PayServiceImpl.class, PayRepositoryImpl.class}) 16라인: 해당 테스트 클래스의 메소드에 트랜잭션을 적용합니다. 19~20라인: PayServiceImpl에서 사용하는 payRepository 빈을 주입합니다. 22라인: junit에서 테스트하는 메소드를 정의합니다. 25~26라인: payRe..