백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법
-
Mock 객체 Stubbing백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 27. 23:55
https://github.com/keesun/inflearn-the-java-test 위사이트에 들어가서 테스트코드 다운로드 16번째로 commit한거 Mock 객체의 행동 null을 리턴 (Optional 타입은 Optional.empty 리턴) Primitive 타입은 기본 Primitive값 boolean 은 false long 0 콜렉션은 비어있는 콜렉션 Void메소드는 예외를 던지지 않고 아무런 일도 발생하지 않는다. Mock 객체를 조작해서 특정한 매개변수를 받은 경우 특정한 값을 리턴하거나 예뢰를 던지도록 만들 수 있다. How about some subbing? https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mock..
-
Mock 객체 만들기백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 26. 09:01
https://github.com/keesun/inflearn-the-java-test 위에 github 저장소에 들어가 history를 아래 순서와 같이 history가 쌓여 있다. 이중 Prepare Mockito example를 import를 받고 실행하면 아래와같이 import가 된다.(test부분은 삭제했음) 방법1. 아무것도 사용안할 시 테스트하는 방법 StudyService class를 테스트하기위해서는 아래와 같이 구현하여 테스트를 해야 한다. 하지만 아래와 같이 구현체를 직접 구현해서 사용해야하는 번거로움이 있다. import static org.junit.Assert.assertNotNull; import java.util.List; import java.util.Optional; im..
-
Junit5 조건에 따라 테스트 실행하기백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 19. 13:09
특정한 조건, 특정한 환경변수, 값에 따라 실행하거나 안하거나 이런 조건에 따른 조건 assumeTrue(조건) org.junit.jupiter.api.Assumptions.*에 존재 True/false으로 나타내며 false일때 아래 테스트코드 동작을 안함 import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assumptions.assumeTrue; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; public class StudyTest { @Test @DisplayName("스터디 만들기 \uD83..
-
Assertion백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 18. 00:08
Assertion 종류 assertEqulas(expected, actual) 실제 값이 기대한 값과 같은지 확인 assertNotNull(actual) 값이 null이 아닌지 확인 assertTrue(boolean) 다음 조건이 참(true)인지 확인 assertAll(executables...) 모든 확인 구문 확인 assertThrows(expectedType, executable) 예외 발생 확인 assertTimeout(duration, executable) 특정 시간 안에 실행이 완료되는지 확인 duration - 몇초만에 끝내야하는지 마지막 매개변수로 Supplier 타입의 인스턴스를 람다 형태로 제공할 수 있다. 복잡한 메시지 생성해야 하는 경우 사용하면 실패한 경우에만 해당 메시지를 만들..
-
테스트 이름 표시하기백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 17. 22:20
@DisplayNameGeneration 이름을 정리하여 표시 @DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) public class StudyTest { @Test void create_new_syudy() { Study study = new Study(); assertNotNull(study); } @Test void create_new_syudy_again() { System.out.println("create1"); } } @DisplayNameGeneration작성 전 @DisplayNameGeneration작성 후 _를 공백으로 치환 @DisplayName @DisplayNameGeneration(DisplayName..
-
JUnit 5 시작하기백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 17. 22:10
스프링부트 프로젝트를 만들게 되면 자동으로 Junit 5의존성이 추가된다.(2.2+ 버전 이상사용시) 만약 스프링부트 프로젝트를 사용하지 않는다면 아래와같은 의존성을 추가해야 한다. org.junit.jupiter junit-jupiter-engine 5.5.2 test 기본 애노테이션 @Test 테스트 코드 @BeforeAll static을 사용해야함 해당 테스트들이 실행되기 전에 실행 Default 사용가능 void타입으로 작성해야함 @AfterAll ststic을 사용해야함 해당 테스트들이 실행된 후 실행 Default 사용가능 void타입으로 작성해야함 @BeforeEach 모든 테스트를 실행할때 각각의 실행 전에 호출 @AfterEach 모든 테스트를 실행할 때 각각의 실행 후에 호출 @Disa..
-
Junit5 소개백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 15. 12:52
JUnit 이란? 자바 개발자가 많이 사용하는 테스팅 프로임워크 https://www.jetbrains.com/lp/devecosystem-2019/java/ 자바 8이상을 사용해야함 대체제 : TestNG, Spock .. Platform: 테스트를 실행해주는 런처 제공. TestEngine API 제공. Jupiter: TestEngine API 구현체로 JUnit 5를 제공. Vintage: JUnit 4와 3을 지원하는 TestEngine 구현체.