프로그래밍/Junit
-
[Junit] doReturn과 thenReturn프로그래밍/Junit 2022. 2. 21. 18:13
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. doReturn과 thenReturn 두 메소드는 Mockito 프레임워크의 메소드로 단위 테스트 중 발생할 수 있는 어려움을 Stub을 이용하여 극복할 수 있도록 해주는 메소드입니다. doReturn과 thenReturn은 모두 Stub을 만들어 Mock과 Spy의 특정 메소드 호출 시 반환 값을 Test에 코딩된 값으로 반환되도록 해주는 메소드입니다. 비슷한 기능을 하지만 2개의 메소드의 차이에 대하여 알아보도록 하겠습니다. 2. doReturn doReturn 메소드는 when의 Spy객체 또는 Mock객체의 실제 메소드를 호출하여 Stubbing을 하지 않..
-
[Junit] Test Double Spy 상세프로그래밍/Junit 2022. 2. 14. 23:37
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다.틀리거나 잘못된 정보가 있을 수 있습니다.댓글로 알려주시면 수정하도록 하겠습니다.1. Spy와 Mock 차이Spy는 Mock과 동일하게 Test를 위해 만들어진 객체입니다. 그러나 Mock과는 다른 점이 존재합니다. Mock의 경우는 Test를 위해 실 객체의 겉모양(Class)만 가지고 있으며 속(Method)의 경우 Stub을 통해 동작할 내용을 지정하여야 합니다. 그러나 Spy의 경우는 실제 객체와 동일한 겉모양(Class) 뿐만 아니라 구현 또한 동일하게 동작합니다. 또한 실제 구현된 내용 중 일부분을 Stub을 통해 Test 내용으로 변경 또한 가능합니다. 작성한 Class들을 확인해 보겠습니다. FileService Class를 보면 생성자로..
-
[Junit] Mock과 MockBean프로그래밍/Junit 2022. 2. 12. 03:07
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Mock Mock은 Test를 위해 만들어진 가짜 객체입니다. mock객체는 실제 Class에 작성된 메소드를 수행하는 것이 아닌 stub으로 작성한 행위를 수행하여 해당 메소드가 수행된 것처럼 만들 수 있습니다. 작성한 Class들을 확인해 보겠습니다. MemberService Class를 보면 생성자로 MemberRepository를 주입받아 Service가 동작되도록 구현되어 있습니다. Repository는 DB와 Connection 하여 데이터를 입력 또는 조회하는 담당을 합니다. DB와 Connection 하여 데이터가 입력되고 조회되는 것은 Member..
-
[Junit] Test Double프로그래밍/Junit 2022. 2. 8. 01:37
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Test Double 테스트 더블(Test Double)은 제라드 메스자로스에 의해서 탄생한 단어로 테스트 자동화 과정에서 테스트 진행이 어려운 경우 이를 대신하여 테스트 진행이 가능하도록 만들어 주는 객체를 말합니다. Test Double은 큰 의미에서 테스트 진행이 가능하도록 만들어주는 객체를 말하며 아래 5가지의 세부 종류로 나눌 수 있습니다. Test Double 종류 Test Spy Mock Dummy Object Test Stub Fake Object 2. Test Spy Test Stub 처럼 실제 동작을 수행하는 것이 아닌 미리 준비해둔 결과가 반환..
-
[Junit] Junit5 Exception Throw 테스트프로그래밍/Junit 2021. 12. 28. 00:24
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Junit4 Exception 테스트 많은 개발자 분들이 사용한 Junit4에서는 어떤 예외 상황에 대한 테스트를 진행하는 경우 @Test 어노테이션에 expected 속성에 발생을 원하는 Exception의 Class를 전달하는 경우 해당 Exception이 Throw 되면 테스트 성공으로 결과를 받아 볼 수 있었습니다. 2. Junit5 Exception 테스트 방법 Junit5인 jupiter.api Package의 @Test 어노테이션의 경우 expected 속성이 제거되어 더 이상 @Test 어노테이션을 통한 Exception Test가 불가능합니다. J..