분류 전체보기

    Java Mockito Void method 테스트

    Mockito Void Method 테스트 방법 Mockito 프레임워크에서 사용되는 Mockito Verify , Mockito When/Then 및 Mockito의 Mock Methods )와 함께 사용한다. Test 코드를 작성하다가, Mocking을 하고 Mocking한 method가 void 일때 Mocking이 안되는 경우를 보았을것이다. Mockito를 사용해서 Void 메소드를 실행, 또는 exception을 Throw 할 수 있다. 일반적으로 mocking하는 것과 크게 다르지 않다. how? Mockito.doNothing() 모킹할 클래스 클래스 = mock(모킹할 클래스.class); Mockito.doNothing() .when(모킹할 클래스) .사용할메소드(매개변수) // 매개변..

    Java Static Method Mocking Test - 자바 스태틱 메소드 테스트

    JUnit5 Static Method 테스트 방법 - Mocking 먼저 방법부터 보고싶다면 여기로 이동하자. Mocking하는 방법은 다음과 같다. API 문서 java 에서 static 이란 static :정적인, 움직임이 없는, 고정된 자바나 여러 언어에서는 static 이라는 키워드가 존재한다. 주로 사용하는 의미는 정적인, 미리 선언하여 공유된 메모리의 영역을 사용할 때 사용하는 키워드 쯤으로 말할 수 있다. block : {} variable method class static 을 사용하는 이유는 바로 Shared Resource, 즉 공유를 위해서 사용한다. static 으로 선언한 코드는 JVM 메모리영역에 static 영역에 올라가게 되는데, JVM 상 동적 메모리 할당의 heap 영역이..

    어댑터 패턴(Adapter Pattern)

    어댑터 패턴(Adapter Pattern) 어댑터패턴은 일치하지 않는 인터페이스를 가져 호환성이 없는 객체들을 같이 동작시킬 수 있는 구조적 디자인 패턴이다. 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴이다. 클라이언트가 사용하는 인터페이스를 따르지 않는 기존 코드를 재사용할 수 있게 해준다 다음과 같이 불린다. 어댑터(Adapter, Adaptor) 적응자 래퍼(Wrapper) 어댑터 패턴이 해결하려고 하는 문제는 다음과 같다 현재 사용하고 있는 라이브러리가 더 이상 요구에 부합하지 않아 재작성하거나, 다른 라이브러리를 사용해야 할 때가 있다. 다른 라이브러리를 사용하는 경우 Adapter 패턴을 이용해 기존 코드를 가능한 적게 변경하면서 새로운 라이브러리로 교체할 수 있다...

    Java List to String array. 리스트를 스트링으로

    Java List to String array 자바에서 List 타입을 String array (String 배열)로 변환하는 방법은 다음과 같다 1. String.join 메소드 List list = Arrays.asList("수", "영", "김"); String joined = String.join(" and ", list); 2. Collectios.joining 메소드 class Person { private String firstName; private String lastName; public Person(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public Strin..

    Java 박싱과 언박싱, 오토박싱 그리고 성능상 주의할점

    Java Boxing, Unboxing, AutoBoxing 시작하기 전에, 불필요한 AutoBoxing을 줄이고,누적되는 연산이면 primitive Type을 이용한 연산을 하자 Long, Integer보다 primitive 타입을 쓰는 쪽이 훨씬 빠르다 자바에는 자료형이 2가지가 있다. 기본 타입(Primitive Type)과 레퍼런스 타입(Reference Type) 두 타입의 차이점은 이렇다 타입 Primitive Type(기본 타입) Reference Type(참조형 타입 ) 설명 원시 타입, 기본형 타입. 변수의 주소 값에 값이 그대로 저장되는 데이터 타입 참조형 타입. Primitive Type을 제외한 타입들을 이야기 한다. 저장공간 JVM Runtime Data Area중 Stack JV..

    Hamcrest (In Java JUnit5)

    Hamcrest - wikipedia Hamcrest 는 Java 프로그래밍 언어로 소프트웨어 테스트 작성을 지원하는 프레임워크입니다. 사용자 지정 Assertion Matcher('Hamcrest'는 '매처'의 아나그램 ) 생성을 지원하여 일치 규칙을 선언적 으로 정의할 수 있습니다 . [1] 이러한 매처는 JUnit 및 jMock 과 같은 단위 테스트 프레임워크에서 사용됩니다. 공식문서 공식문서 - Java 공식문서 - javadoc assert : 검증, 단언하다. 즉 테스트할 때 검증(assert). 실행한 코드가 설계한대로 정확하게 동작했는지를 검증한다. 검증부는 하드코딩 하는게 좋다고 한다? - 향로님(jojoldu) 간결한 코드로 객체의 상태를 테스트할 수 있다. 또한, 테스트가 실패되었을 ..

    데코레이터 패턴(Decorator Pattern)

    데코레이터 패턴 (Decorator Pattern) decorator 의 사전적 의미 : 장식, 꾸미다. 데코레이터 패턴의 다름 이름 : Wrapper Pattern 데코레이터 패턴(Decorator pattern)이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다. 객체들을 새로운 행동(기능)들을 포함한 특수 래퍼 객체들 내에 넣어서 위 행동들을 해당 객체들에 연결시키는구조적 디자인 패턴이다. 디자인패턴의 중요한점은 디자인패턴으로 해결하고자 하는 문제이다 데코레이터 패턴으로 해결하려는 문제는 다음과 같다 GoF 책 객체에 동적으로 새로운 책임(기능)을 추가할 수 있게하려고 한다. 기능을 추가하려면 서브클..

    무엇을 테스트 할것인가? 어떻게 테스트 할것인가 - 권용근님

    스프링캠프 2019 무엇을 테스트할 것인가? 어떻게 테스트할 것인가? (권용근 님) 좋은 테스트와 테스트 하는 방법에 대하여 고민하던 중, 좋은 영상 자료를 받게 되어 내용을 적으면서 공부한 내용입니다. 영상링크 우리가 테스트를 어려워하고, 결국 포기하는 이유는 잘못된 테스트를 작성했을 가능성이 크다고 생각합니다. 그래서 스프링 프레임워크를 사용하면서 우리는 무엇을 테스트해야 하는지, 어떻게 테스트할 것인지를 이야기해보려고 합니다. TDD 보다는 테스트에 대하여 이야기하는 세션입니다. 목차 테스트로 얻을 수 있는것 무엇을 테스트할 것인가? 어떻게 테스트할 것인가? TIP & RULE 1. 테스트로 얻을 수 있는것 마음의 안정성 -> 안정감과 자신감 -> 소프트웨어의 안정감과 자신감 안정감과 자신감을 얻어..

    Java 람다표현식의 특징과 Scope, effectively final variable

    람다의 특징 용어 정리 왜 final 또는 effectivly final만 접근할 수 있는가? 들어가기 앞서. 결론 : 멀티쓰레드 환경에서 동작한다면, 람다 내의 각 루프가 다른 쓰레드에서 서로 참조할 수 있기 때문에 레이스 컨디션이 일어날 수 있다. 그러므로 람다식 안에서 람다식 밖의 변수를 참조하려면 final 또는 effectively final 이여야 한다. 하지만 예외로 람다식에서 인덱스 라던가 final이 아닌 지역변수를 참조, 수정하고 싶다면, Java에서 멀티스레드환경에서 동시성을 보장해주는 Atomic 클래스를 사용하면 된다. Java에서 동시성을 제어할 수 있는방법 Java docs - atomic 1. Lambda의 특징 람다에서 지역변수를 사용하려면 다음과 두가지 특징이 있다 람다표..

    Java String Builder와 StringBuffer의 차이점

    (숙제) StringBuilder와 StringBuffer는 무슨 차이가 있는가? String : 문자열 Java에서는 문자열을 다룰 수 있는 객체를 위해 String, StringBuilder, StringBuffer 3가지 클래스를 제공한다. 세 클래스 모두 문자열을 관리하는 클래스라는 공통점이 있지만, 불변(Immutable)인지, 동기화 지원여부에 따라 차이가 있다. String [docs] String class는 불변(immutable)하다. 초기에 생성하면 값이 변하지 않는다는 것이다. 인스턴스가 생성되면 수정이 불가능하다. String 은 constant 형태로, 한 번 생성이 된다면 update 라는 개념이 사라진다. [constant : 상수, 끈임없는] 실제로 자바 코드 정의에서도 f..