본문 바로가기
728x90

JUnit7

[Junit] Jasper Report PDF 문서 검증하기 (feat. JpdfUnit) JasperReport 라이브러리를 사용하여 PDF형식의 보고서를 생성할 때 데이터가 제대로 가공되어 보고서가 정상적으로 생성 되는지 테스트 하기 위해 JpdfUnit을 사용하게 되었다. *JasperReport에 대한 내용은 해당 글 참조. https://inbeom.tistory.com/entry/JasperReports-JasperReports%EB%9E%80-feat-Jaspersoft-Studio 기존 Java에서는 Junit을 사용하여 데이터를 검증하고 서비스 로직 등을 테스트 하지만 JasperReport를 사용하여 생성한 PDF형식의 보고서의 데이터를 검증하기 위해서는 다른 방법이 필요하여 리서치를 통해 여러 개발자들이 PDF 데이터 검증에 활용하고 있는 JpdfUnit이라는 오픈소스 프레.. 2024. 1. 23.
[Junit] Elasticsearch Unit(Integration) Test Code 작성하기 Spring에서 Junit을 사용하여 Elasticsearch 테스트 코드를 작성하는 방법 Spring 프로젝트에서 Junit으로 Test Code를 작성할 때 RDB(Mysql, Postgresql, Orcle 등)는 JPA나 MyBatis의 Queyr(method)를 사용하여 결과값을 간단히 검증할 수 있지만 Elasticsearch의 경우 org.elasticsearch에서 제공하는 Library를 활용하여 TEST CODE를 효율적으로 작성할 수 있다. 기존에는 ES 임베디드 환경을 사용하여 테스트가 가능했지만 7.0 버전부터 사용이 불가능해진 것으로 보이며 ES의 개발자가 대안으로 RestHighLevelClient를 사용한 In Memory 테스트 방법을 추천한다. https://discuss.. 2024. 1. 23.
[Junit] Test 종류. Test Case (feat. 전자정부 프레임워크) 테스트는 소프트웨어 개발 생명주기에서 매우 중요한 부분을 차지한다. 테스트를 잘 하면 버그 감소와 유지보수 용이성, 코드 문서화, 개발 생산성 향상 등의 측면에서 유리하다. White Box Test (구조 기반 테스트) 소프트웨어의 내부 구조와 동작을 검증하는 테스트로 개발자가 코드의 내부 로직, 제어 흐름, 데이터 흐름 등을 이해하고 테스트 케이스를 작성하는 방법이다. 코드의 모든 경로와 조건을 확인할 수 있어 Code Coverage가 높지만, 개발자의 시각에 의존하므로 완전한 테스트는 힘들다. Black Box Test (기능 기반 테스트) 소프트웨어의 내부 구현을 알지 못하고 기능에만 초점을 맞춘 테스트로 시스템이 요구 사항을 만족하는지 여부를 확인하는 것이 목표이다. 사용자의 관점에서 테스트하.. 2023. 11. 17.
[Junit] TypeReference, JsonPath - Json 다루기 (feat. ObjectMapper) Junit을 사용하여 Integration Test Case 작성 중 데이터 검증로직을 구현할 때 유용하게 사용할 수 있다. TypeReference란? TypeReference는 Jackson 라이브러리에서 제공하는 클래스로, 제네릭 타입을 사용하는 경우에 JSON 데이터를 해당 제네릭 타입으로 역직렬화할 때 유용하다. Jackson은 제네릭 타입 정보를 유지할 수 없기 때문에 이러한 경우에 TypeReference를 사용하여 타입 정보를 보존한다. Example > List list = new ObjectMapper().readValue(responseContent, new TypeReference(){}); @Test //Todo. User 리스트 조회 테스트 @Transactional public.. 2023. 11. 17.
[Junit] Junit4 다양한 라이브러리 활용 (feat. AssertJ, Unitils, RestAssured) Test Code를 작성하려면 Junit만 사용해도 되지만 Test Code에 대한 가독성이나 편리성을 높여주는 라이브러리들을 활용하면 더 쉽고 편하게 코드를 작성할 수 있다. Junit에 대한 기본적인 내용은 이전 글 참고! https://inbeom.tistory.com/entry/JUnit-JUnit%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EA%B8%B0%EB%B3%B8-%EC%A0%95%EB%A6%AC Junit 기반 테스트 코드를 작성할때 활용할 수 있는 여러 라이브러리가 있지만 가장 많이 사용되는 것은 AssertJ, Unitils, RestAssured 3가지가 있다. AssertJ AssertJ는 Java기반의 객체 지향적인 방식으로 테스트 코드를 작성할 수 있.. 2023. 11. 17.
[JUnit] 테스트 코드 작성하기 💡 Test 방법을 알아보자~! 웹 서버를 실행시켜 직접 사용해보지 않아도 테스트 클래스를 만들어 코드를 테스팅 해볼 수 있다. Testing (Annotation) @SpringBootTest 통합 테스트를 제공하며, 애플리케이션에 설정된 빈을 모두 로드한다. @Test Test 메서드로 인식하고 테스트 한다. @BeforeAll 해당 테스트 클래스를 초기화할 때 딱 한번 수행되는 메서드다. (static 으로 선언해야한다) @BeforeEach 테스트 메서드 실행 이전에 수행된다. @AfterAll 해당 테스트 클래스 내 테스트 메서드를 모두 실행시킨 후 딱 한번 수행되는 메서드다. (static 으로 선언해야한다) @AfterEach 테스트 메서드 실행 이후에 수행된다. @WebMvcTest(abc.. 2023. 9. 10.
[JUnit] JUnit의 개념과 기본 정리 💡 JUnit 이란? TDD (Test-driven Development) 테스트 주도 개발에서 사용하지만, 코드의 유지 보수 및 운영 환경에서의 에러를 미리 방지하기 위해서 단위 별로 검증하는 테스트 프레임워크이다. 단위 테스트 작성한 코드가 기대하는 대로 동작 하는지 검증하는 절차. JUnit Java 기반의 단위 테스트를 위한 프레임워크. Annotation 기반으로 테스트를 지원하며, Assert를 통하여 (예상, 실제) 검증. Assert assertArrayEquals(a, b) 배열 A와 B가 일치함을 확인 assertEquals(a, b) 객체 A와 B가 같은 값을 가지는지 확인 assertEquals(a, b, c) 객체 A와 B가 값이 일치함을 확인( a: 예상값, b:결과값, c: 오.. 2023. 9. 10.
728x90