본문 바로가기
반응형

Java26

[Java] Mockito 사용법 (5) - BDD 스타일 API (+ BDD란?) 이번 포스팅에선 Mockito가 지원하고 있는 BDD 스타일 API에 대해 알아보겠습니다. 먼저 BDD에 대한 개념부터 알아보고 가겠습니다. BDD (Behavior Driven Development)란? TDD (Test Driven Development)는 "테스트"를 기준으로 하는 개발 방법론입니다. BDD (Behavior Driven Development)는 "행동"을 기준으로 하는 개발 방법론입니다. TDD를 참고했다고 하네요. 위키피디아에 나와있는 BDD 설계 방법입니다. 테스트할 때 Title, Narrative까진 사용하지 않고 Acceptance criteria만 사용합니다. Title An explicit title. Narrative A short introductory sectio.. 2022. 9. 6.
[Java] Mockito 사용법 (4) - 검증 (Verify) 이번 포스팅에선 Mockito를 이용해 스터빙한 메소드가 제대로 실행이 됐는지 확인해보는 메소드에 대해서 알아보겠습니다. 스터빙한 메소드를 검증하는 방법 verify 메소드를 이용해서 스터빙한 메소드가 실행됐는지, n번 실행됐는지, 실행이 초과되지 않았는지 등 다양하게 검증해볼 수 있습니다. verify(T mock, VerificationMode mode) 위와 같은 형태로 쓰며 VerificationMode는 검증할 값을 정의하는 메소드입니다. 메소드명 설명 (테스트 내에서~) times(n) 몇 번이 호출됐는지 검증 never 한 번도 호출되지 않았는지 검증 atLeastOne 최소 한 번은 호출됐는지 검증 atLeast(n) 최소 n 번이 호출됐는지 검증 atMostOnce 최대 한 번이 호출됐는.. 2022. 9. 6.
[Java] Mockito 사용법 (3) - 스터빙 (Stubbing) (OngoingStubbing, Stubber) 이번 포스팅에선 스터빙(Stubbing)의 개념과 Mockito에서 스터빙을 하는 방법에 대해 알아보겠습니다. 스터빙(Stubbing)이란? Mockito에서 스터빙을 알아보기 전에 개념부터 알아보겠습니다. Stubbing은 stub이라고도 하며 토막, (표수표 등에서 한 쪽을 떼어 주고) 남은 부분이라는 뜻을 가지고 있습니다. 위키피디아에 정의된 내용은 다음과 같습니다. (https://en.wikipedia.org/wiki/Test_stub) 테스트 스텁(Test Stub)은 테스트 호출 중 테스트 스텁은 테스트 중에 만들어진 호출에 대해 미리 준비된 답변을 제공하는 것 만들어진 mock 객체의 메소드를 실행했을 때 어떤 리턴 값을 리턴할지를 정의하는 것이라고 생각하시면 됩니다. Mockito에선 어.. 2022. 9. 6.
[Java] Mockito 사용법 (2) - 설정, Mock 생성 (@Mock, @Spy, @InjectMocks) 이번 포스팅에선 Mockito 설정하는 방법과 mock 객체 생성관련 어노테이션에 대해 알아보겠습니다. Mockito 설정 mockito 최신 버전은 jcenter에 올라와있으니 설정한 후에 의존성을 추가하면 됩니다. repositories { jcenter() } // maven org.mockito mockito-android 3.7.7 pom // gradle implementation 'org.mockito:mockito-android:3.7.7' 라이브러리 설정 후 Mockito를 사용하려면 테스트 클래스 위에 @ExtendWith(MockitoExtension.class)를 붙혀줘야합니다. @ExtendWith(MockitoExtension.class) public class mockCreat.. 2022. 9. 6.
[Java] Mockito 사용법 (1) - Mock이란?, Mockito 소개 이번 포스팅에선 Mock을 만들고 여러 기능들을 제공하는 Mock 프레임워크 Mockito에 대해 알아보겠습니다. Mock이란? Mockito에 대해 설명하기 전에 Mock에 대한 개념부터 설명하겠습니다. Mock은 한글로 "모의, 가짜의"라는 뜻으로 테스트할 때 필요한 실제 객체와 동일한 모의 객체를 만들어 테스트의 효용성을 높이기 위해 사용합니다. 위키에 정의된 Mock은 다음과 같습니다. 모의 객체(Mock Object)란 주로 객체 지향 프로그래밍으로 개발한 프로그램을 테스트할 경우 테스트를 수행할 모듈과 연결되는 외부의 다른 서비스나 모듈들을 실제 사용하는 모듈을 사용하지 않고 실제의 모듈을 "흉내"내는 "가짜" 모듈을 작성하여 테스트의 효용성을 높이는 데 사용하는 객체이다. 사용자 인터페이스(.. 2022. 9. 6.
[Java] Apache Log4j 2.x 취약점 및 해결 방법 (Log4j2 remote code execution vulnerability) 갑자기 뉴스를 보는데 Log4j에서 엄청난 취약점이 발견됐다는 소식이 나오길래 뭐 때문인지? 그리고 해결 방안은 무엇인지 찾아봤습니다. 취약 버전 2.0 beta9 2021. 12. 12.
[Java] equals(), hashCode(), toString() 재정의 이유와 방법 (2) 이번 포스팅에선 hashCode(), toString() 재정의 이유와 방법에 대해 알아보겠습니다. equals()에 대해 궁금하신 분은 이전 포스팅을 참고바랍니다. [Java] equals() (+ == 와 차이점), hashcode(), toString() 재정의 이유와 방법 (1) 많은 분들은 그냥 equals(), hashcode(), toString() 이거 그냥 쓰면 되는 거 아니야?? 왜 재정의를 해야 해? 사실 저거 뭐 어떻게 쓰는지도 몰라~라고 하시는 분들이 있습니다. 저도 예전엔 그러기도 했구 effortguy.tistory.com hashCode() 뭐하는 메소드인가요? 참조형 객체는 Object를 기본으로 상속받고 있는데 Object에 있는 hashCode()를 보면 객체의 해시코드.. 2021. 4. 16.
[Java] equals(), hashCode(), toString() 재정의 이유와 방법 (1) 많은 분들은 그냥 equals(), hashCode(), toString() 이거 그냥 쓰면 되는 거 아니야?? 왜 재정의를 해야 해? 사실 저거 뭐 어떻게 쓰는지도 몰라~라고 하시는 분들이 있습니다. 저도 예전엔 그러기도 했구요. 그래서 이번 포스팅에선 equals() 재정의 이유와 방법을 소개하겠습니다. equals() 언제 재정의 해야 하나? 클래스 간 논리적 동치성을 확인해야 할 때 재정의 해야 합니다. 왜 재정의를 해야 하나? 참조형 객체는 Object 클래스를 기본으로 상속하고 있으니 Object에서 제공해주는 equals() 그냥 사용하면 안 되나?? 라고 생각하시는 분들이 많으실텐데 Object에서 제공하는 equals는 단순히 같은 객체인지 아닌지를 판단하고 있기 때문입니다. public.. 2021. 4. 16.
반응형