JAVA(자바) 단위 테스트 실습 - 숫자야구게임 구현
2021. 9. 17. 14:28
JAVA with TDD, Clean Code
이 글은 자바지기(박재성)님의 강의를 개인적인 공부를 위해 정리한 글입니다. 우아한테크세미나_TDD 리팩토링 단위 테스트 실습 - 숫자야구게임 다음 요구사항을 JUnit을 활용해 단위 테스트 코드를 추가해 구현한다. 기능 요구사항 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 포볼 또는 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞추면 승리한다. e.g. 상대방(컴퓨터)의 수가 425일 때, 123을 제시한 경우 : 1 스트라이크, 456을 제시한 경우 : 1 볼 1스트라이크, 789를 제시한 경우 : 낫싱 위 숫자 야구 게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 1에서 9까지 서로 다른 임의의 수 3개를 선택한다. 게 임 ..
JAVA(자바) 단위 테스트 실습 - 문자열 계산기
2021. 9. 3. 16:52
JAVA with TDD, Clean Code
이 글은 자바지기(박재성)님의 강의를 개인적인 공부를 위해 정리한 글입니다. 우아한테크세미나_TDD 리팩토링 📖 단위 테스트 실습 - 문자열 계산기 다음 요구사항을 JUnit을 활용해 단위 테스트 코드를 추가해 구현한다. 기능 요구사항 사용자가 입력한 문자열 값에 따라 사칙연산을 수행할 수 있는 계산기를 구현해야 한다. 문자열 계산기는 사칙연산의 계산 우선순위가 아닌 입력 값에 따라 계산 순서가 결정된다. 즉, 수학에서는 곱셈, 나눗셈이 덧셈, 뺄셈보다 먼저 계산해야 하지만 이를 무시한다. 예를 들어 "2 + 3 * 4 / 2"와 같은 문자열을 입력할 경우 2 + 3 * 4 / 2 실행 결과인 10을 출력해야 한다. 계산기(사칙연산) 부분 구현 public int add(int a, int b){ ret..
간단한 클래스 분리
2021. 8. 21. 11:28
JAVA with TDD, Clean Code
이 문제는 마린이 스팀팩을 쓰면 자신의 체력이 10 깎이고, 메딕이 힐을 써주면 마린의 체력이 10 올라가게 하는 프로그램을 구성하는 것이다. 딱 봤을 때는 유치해 보일지는 모르겠지만 이 문제에서 클린 코드를 만들기 위한 메소드 분리 + 클래스를 분리하는 리팩토링 경험 을 간단히 진행할 수 있었다. 클린코드를 위한 가이드 1) 작게 만들어라. 함수를 만드는 첫 번째 규칙은 '작게'다. 함수를 만드는 두 번째 규칙은 '더 작게'다. 2) 한 가지만 해라. 함수는 한 가지를 해야 한다. 그 한 가지를 잘해야 한다. 그 한 가지만 해야 한다. 3) 함수 당 추상화 수준은 하나로 함수가 확실히 '한 가지' 작업만 하려면 함수 내 모든 문장이 동일한 추상화 수준에 있어야 한다. 코드는 위에서 아래로 이야기처럼 일..
JUnit, AssertJ, 단위테스트 개념 및 다양한 활용법
2021. 8. 4. 15:34
JAVA with TDD, Clean Code
📖 단위 테스트란? 단위 테스트는 작은 논리 또는 코드를 테스트하여 코드의 출력이 특정 데이터의 입력 및 / 또는 특정 조건을 충족할 때 예상한 대로인지 확인합니다. 일반적으로 단위 테스트는 다른 테스트와 독립적이어야 한다. 단위 테스트는 메서드 나 클래스 일 수 있는 작은 코드 단위만 대상으로 한다. 개발자가 현재 논리의 문제와 현재 변경으로 인한 회귀 실패를 발견하는 데 도움이 되고, 또한 현재 코드가 향후 구현에 어떻게 영향을 미칠 수 있는지에 대한 통찰력을 제공한다. 📗 main method main method의 용도 프로그램을 시작 구현한 프로그램을 테스트 여기서는 main method를 테스트 용도로 사용하는 경우를 가정하고 있다. 가장 간단한 사칙연산을 예로 들어 보자 사칙연산이 가능한 계..
Set Collection에 대한 학습 테스트
2021. 7. 30. 16:49
JAVA with TDD, Clean Code
이 글은 자바지기(박재성)님의 강의를 개인적인 공부를 위해 정리한 글입니다. 우아한테크세미나_TDD 리팩터링 📖 1단계 - 단위 테스트 연습 내가 사용하는 API 사용법을 익히기 위한 학습 테스트에서 시작 String 클래스에 대한 학습 테스트 Set Collection에 대한 학습 테스트 구현하는 메소드(함수) 중 Input과 Output이 명확한 클래스 메소드(보통 Util 성격의 메소드) 에 대한 단위 테스트 연습 Set Collection에 대한 학습 테스트 다음과 같은 Set 데이터가 주어졌을 때 요구사항을 만족해야 한다. 여기서 쓰인 @BeforeEach 어노테이션은 @BeforeEach는 각 테스트 함수가 불리기 전에 매번 호출 됨(JUnit4에서 @Before) 추가로 @BeforeAll은..