분류 전체보기
-
[5주차]클래스스터디/[whiteship]JAVA 2021. 2. 12. 18:38
자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 과제 (Optional) - 추후 추가예정 int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. 먼저 클래스란, 객체를 선언한 모양의 틀이자 설계도이다. 이러한 설계도를 가지고 생성된 것을 인스턴스라고 한다. 또한 자..
-
GitHub API로 스터디 참석률을 구하는 프로그램 만들기프로젝트 2021. 2. 9. 23:19
whitdship study 4주차에 참가하면서 Github API를 사용해 스터디 참여율을 계산하는 과제를 진행했다. GitHub API를 사용하면서 최대한 Javadoc 그리고 Github 공식문서만 참고하여 개발하고자 노력했다. 이유는 간단하다 현재 구글신이 존재하지만 항상 의존할 수는 없다는 것과 이렇게하면 조금이라도 성장하지 않을까 생각해서 답답한 방법으로 진행했다. 프로젝트 코드를 보기전에 다음을 잠깐 살펴보자 간단한 예제코드가 있다. github-api.kohsuke.org GitHub API for Java – What is this? This library defines an object oriented representation of the GitHub API. By "object or..
-
Junit5에서 Junit4마이그레이션 하기테스트/Junit5 2021. 2. 8. 17:13
우리가 1장에서 살펴본 Junit5의 구조를 잠깐 생각해보자. 1. Jupiter - TestEngine의 구현체 2. Vintage - Junit4, 3을 지원하는 TestEngine 구현체 3. platform - 테스트를 실행해주는 런처 제공, TestEngine API제공. 본글에선 이 Vintage를 의존성을 추가해 Junit5에서도 Junit4로 작성한 테스트를 실행하고자 한다. [REFERENCES]www.inflearn.com/course/the-java-application-test/dashboard 더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법..
-
JUnit5 확장 모델테스트/Junit5 2021. 2. 8. 16:20
만약 테스트 시간이 오래 걸리는 테스트를 찾아 @SlowTest 어노테이션을 붙여주는 Extention모델을 구현한다 가정하자. 이러한 기능을 하는 JavaClass를 구현하고, 테스트 클레스에서 등록해줄 때, 필요한 것은 @ExtendWith 애노테이션이 필요하다. 바로 실습해보자. 예제코드 1. 테스트 시간이 일정시간 지나면 @SlowTest 태깅을 고려해주는 FindSlowTestExtension 구현하기 Exteion 모델을 구현하기 위해서 다음 Interface를 알아둘 필요가 있다. BeforeTestExecutionCallback, AfterTestExecutionCallback 은 다음과 같이 설명되어 있다. [REFERENCES]junit.org/junit5/docs/current/api..
-
properties파일로 JUnit5 설정하기테스트/Junit5 2021. 2. 8. 14:33
우리가 그동안 살펴보았던 @Disabled, 인스턴스 라이프사이클, 테스트 이름 표기 등 Annotation으로 테스트를 제어 해왔지만, 이번 시간에는 properties파일로 테스트를 설정하고자 한다. ※본 글에선 intellij IDE로 실습한다 1. properties파일 생성하기 먼저 테스트 폴더에 resources 디렉토리를 만든후 junit-platform.properties이란 파일을 생성한다. 후에 Project structure -> Module에서 우리가 방금 만든 테스트 폴더를 Test Resources로 Class Path로 경로를 잡아준다. 2. 생성한 properties파일로, 모든 테스트 라이프 사이클을 클레스 인스턴스로 적용하기 생성한 properties 파일에 다음과 같은 ..
-
테스트 순서테스트/Junit5 2021. 2. 6. 19:10
※테스트를 실행할 때 코드에 존재하는 테스트 메소드마다 내부 로직에 의해 순서대로 실행이 된다. 하지만 우리는 이 순서에 의존하면 안된다 -> 순서가 바뀔수도 있기 때문에. 그렇다면 왜 순서를 명확하게 하지 않는가. -> 단위테스트일 경우 각각의 테스트마다 독릭접이기 때문(의존성이 없애기 위해). 하지만 우리는 종종 시나리오 테스트일 경우 순서대로 실행하고 상태정보를 저장하는 테스트가 필요하다 EX)쇼핑몰에서 로직 테스트 회원가입 -> 로그인 -> 상품 -> 주문 -> 결제... 그렇다면 어떻게 순서대로 테스트를 실행할 수 있을까. 방법1. @TestInstance(Lifecycle.PER_CLASS)와 함께 TestMethodOrder사용 TethodOrder구현체 설정 Alphanumeric Orde..
-
테스트 인스턴스테스트/Junit5 2021. 2. 6. 18:29
테스트 메소드마다 테스트 클레스 인스턴스를 새로 만든다. 이것이 JUnit5에서 기본전략이다. Q.왜 인스턴스를 테스트 메소드 마다 만들까? A.테스트 메소드를 독립적으로 실행하여 의존성을 낮춰 예상치 못한 부작용을 막기 위해서이다. 하지만 JUnit5에선 이런 기본전략을 바꿀수 있는 기능이 추가되었다. 그것이 바로 @TestInstance 애노테이션이다. @TestInstace(Lifecycle.PER_CLASS) - 테스트 클래스당 인스턴스를 하나 만들어 사용한다. 예제1. 테스트 메소드별 테스트 인스턴스 확인해보기 @DisplayName("스터디 클레스") class StudyTest { @Test @DisplayName("메서드 1️") void create_new_study_test() { Sy..
-
테스트 반복하기2 @ParameterizedTest이용한 추가 방법테스트/Junit5 2021. 2. 2. 18:08
2021/02/02 - [테스트/Junit5] - 테스트 반복하기 junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests 또한, 사용자가 커스텀화한 클래스 그리고 여러개의 인자값이 존재한다면, 하나로 조합해 하나의 매개변수로 받을 수 있는 방법이 있다. -> @ConverWith를 활용한 SimpleArgumentConverter 이용 -> 커스텀 클래스 생성후 사용한 경우 -> @AggregatwWtih를 활용한 ArgumentsAggregator 인터페이스 구현 -> 인자값 조합을 활욘한 경우. 아래 소스코드를 보면서 각 애노테이션이 어떻게 쓰이는지 이해해보자. 예제코드1. ValueSource에 여러값들 할당하기 @Va..