junit 활용예시
junit 및 Mockito 활용예시를 정리해보았다.자주 사용하는것들을 참고하기 위해.. 1234567891011121314151617181920212223242526272829import static org.assertj.core.api.Assertions.assertThat;public class StringTest { @Test public
junit 및 Mockito 활용예시를 정리해보았다.자주 사용하는것들을 참고하기 위해.. 1234567891011121314151617181920212223242526272829import static org.assertj.core.api.Assertions.assertThat;public class StringTest { @Test public
TDD테스트로부터 시작하는 개발 방식 (실패하는) 테스트 코드 작성 테스트를 통과시킬만큼 구현 코드정리 테스트코드는 given when then으로 구성됨 12345678910@Testvoid confirmMember() {// 상황: 대기 상태 회원이 존재memoryMemberRepository.save(Member.id(“id”).statu
TDDTDD와 단위테스트는 다름.TDD: 테스트 먼저 짜고 프로덕션 코드를 구현하는것. 시작전 To do 리스트를 작성.to do 리스트는 언제든지 프로젝트를 진행해나가면서 변경될 수 있다. 최초 실패하는 코드를 작성그 후 프로덕션 코드를 고쳐 테스트를 통과하도록 해라 테스트에서 먼저 이뤄지라테스트코드에서부터 프로덕트 코드를 만들어 나가는것에 익숙해져야함.
생성방법 of()Option.of(someValue)someValue가 null 이면 NPE 발생 ofNullable()Optional opt = Optional.ofNullable(someValue);someValue가 null이여도 Null 이 들어간 Optional이 생성됨 empty()Optional opt = Optional.
두 가지 이상의 기능을 가지고 있으며, 그 중 어떤 기능을 제공하는지 표시하는 태그가 달린 클래스를 만날 수 있다. 12345678910111213141516171819class Figure { enum Shape { RECTANGLE, CIRCLR }; // 어떤 모양인지 나타내는 태그 필드. final Shape shap
인터페이스를 구현하는 클래스를 만들게 되면 그 인터페이스는 해당 클래스의 객체를 참조할 수 있는 자료형(type)역할을 하게된다. 인터페이스를 구혆 클래스를 만든다는 것은, 해당 클래스의 객체로 어떤 일을 할 수 있는지 클라이언트에게 알리는 행위다. 다른 목적으로 인터페이스를 정의하고 사용하는것은 적절치 못하다.적절하지 못한예: 상수 인터페이스(메서드가 없
계승을 위한 설계와 문서를 갖춘다는것은 무슨의미일까?메서드를 재정의 하면 어떤일이 생기는 지 문서에 잘 남겨야 한다. 즉 재정의 가능 메소드가 내부적으로 어떻게 동작하는지 문서에 남기라는 것이다. public, protected로 선언된 모든 메서드와 생성자에 대해 어떤 재정의 가능 메서드를 어떤 순서로 호출하는지 호출결과는 어떤 영향을 미치는지 남기라는
계승은 코드 재사용을 돕는 강력한 도구지만 항상 최선은 아니다. 계승을 적절히 사용하지 못한 소프트웨어는 깨지기 쉽다. 계승은 상위 클래스와 하위 클래스 구현을 같을 프로그래머가 통제하는 단일 패키지 안에서 사용하면 안전하다. 또한 계승을 고려하여 설계되고 그에 맞는 문서를 갖춘 클래스에 사용하는것도 안전하다. 일반적인 객체 생성 가능 클래스라면 해당클래스
변경 불가능 클래스는 그 객체를 수정할 수 없는 클래스이다. 객체 내부의 정보는 객체가 생성돌 때 주어진 것이며, 객체가 살아있는 동안 그대로 보존된다.변경불가능 클래스를 만드는 이유는 변경 가능 클래스보다 설계하기 쉽고 구현하기 쉬우며, 사용하기도 쉽다. 오류 가능성도 적고, 더 안전하다. 변경 불가능 클래스가 따라야 할 규칙1.객체 상태를 변경하는 메서
default1234class Point { public double x; public double y;} 데이터 필드를 직접 조작할 수 있어서 캡슐화의 이점을 누릴 수 없다. API를 변경하지 않고서는 내부 표현을 변경할 수 없고, 불변식도 강제할 수 없고, 필드를 사용하는 순간에 어떤 동작이 실행되도록 만들수도 없다. 이는 privat