백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법
-
JMeter 소개백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 6. 7. 14:39
성능 측정 및 부하 (load) 테스트 기능을 제공하는 오픈 소스 자바 애플리케이션. 다양한 형태의 애플리케이션 테스트 지원 웹 - HTTP, HTTPS SOAP / REST 웹 서비스 FTP 데이터베이스 (JDBC 사용) Mail (SMTP, POP3, IMAP) CLI 지원 CI 또는 CD 툴과 연동할 때 편리함. UI 사용하는 것보다 메모리 등 시스템 리소스를 적게 사용. 주요 개념 Thread Group: 한 쓰레드 당 유저 한명 Sampler: 어떤 유저가 해야 하는 액션 Listener: 응답을 받았을 할 일 (리포팅, 검증, 그래프 그리기 등) Configuration: Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등) Assertion: 응답이 성공적인지 ..
-
Testcontainers, 컨테이너 정보를 스프링 테스트에서 참조하기백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 6. 7. 12:42
@ContextConfiguration 스프링이 제공하는 애노테이션으로, 스프링 테스트 컨텍스트가 사용할 설정 파일 또는 컨텍스트를 커스터마이징할 수 있는 방법을 제공한다. ApplicationContextInitializer 스프링 ApplicationContext를 프로그래밍으로 초기화 할 때 사용할 수 있는 콜백 인터페이스로, 특정 프로파일을 활성화 하거나, 프로퍼티 소스를 추가하는 등의 작업을 할 수 있다. TestPropertyValues 테스트용 프로퍼티 소스를 정의할 때 사용한다. Environment 스프링 핵심 API로, 프로퍼티와 프로파일을 담당한다. 전체 흐름 Testcontainer를 사용해서 컨테이너 생성 ApplicationContextInitializer를 구현하여 생선된 컨테..
-
Testcontainers 기능백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 6. 7. 11:22
컨테이너 만들기 New GenericContainer(String imageName) @Container static GenericContainer postgreSQLContainer = new GenericContainer("postgres") .withExposedPorts(5432) .withEnv("POSTGRES_DB", "studytest"); 네트워크 withExposedPorts(int...) DB port가 같다면 테스트 DB 및 운영서버 DB 중 랜덤하게 사용한다.(충돌하지 않는 포트 우선사용) ## 개발용 DB docker run -p 5432:5432 --name study-db -e POSTGRES_USER=study -e POSTGRES_PASSWORD=study -e POSTG..
-
Testcntainers 소개 및 설치백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 6. 5. 08:54
https://www.testcontainers.org/ Testcontainer란? 테스트에서 도커 컨테이너를 실행할 수 있는 라이브러리. 테스트 실행시 DB를 설정하거나 별도의 프로그램 또는 스크립트를 실행할 필요 없다. 보다 Production에 가까운 테스트를 만들 수 있다. 테스트가 느려진다. Testcontainer 설치 및 예시 Testcontainers JUnit5 지원 모듈 설치(기본) - Testcontainers와 Container 사용가능 org.testcontainers junit-jupiter 1.13.0 test @Testcontainers JUnit 5 확장팩으로 테스트 클래스에 @Container를 사용한 필드를 찾아서 컨테이너 라이프사이클 관련 메소드를 실행해준다. @Co..
-
BDD 스타일 Mockito API백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 6. 2. 08:43
https://github.com/keesun/inflearn-the-java-test 위 사이트에 들어가서 테스트코드를 받자(3399abcc89ce150b48dcfbcac54d418350467760) BDD 애플리케이션이 어떻게 '행동'해야 하는지에 대한 공통된 이해를 구성하는 방법으로, TDD에서 창안됨 Mockito는 BddMockito라는 클래스를 통해 BDD 스타일의 API를 제공한다 BDD 스타일 When - > Given Verify -> Then 행동에 대한 스팩 Title 행동의 이름 Narrative 행동에 대한 설명 as a 어떤한 역활 I want 내가 원하는 것 so that 의사 표현 Acceptance criteria 인수 테스트한 내용 Given 어떠한 상황이 주어진 상황 W..
-
Mock 객체 확인백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 29. 08:58
Mock 객체가 어떻게 사용됐는지 확인이 가능하다. 예시코드는 아래의 깃사이트에서 다운로드 받을 수 있으며 https://github.com/keesun/inflearn-the-java-test 캡쳐한 index를 다운받으면 된다. Verifying exact number of invocations javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#exact_verification 특정 메소드가 특정 매개변수로 몇번 호출 되었는지, 최소 한번은 호출됐는지, 전혀 호출되지 않았는지 예시코드 import static org.junit.jupiter.api.Assertions.assertEquals; import static org..
-
Mock객체 stubbing연습문제백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 28. 23:25
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; import java.util.Optional; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mo..