본문 바로가기
728x90
반응형

Spring/JUnit & Test6

[Mock과 Mocktio] @Mock @MockBean Mockito Document : https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html 참고 코드 : https://github.com/journaldev/journaldev/tree/master/Mockito-Examples Mock이란? 가짜 객체라고 불리며, 행위를 검증하기 위해 사용되는 객체입니다. 가짜 객체를 만드는 이유 실제 객체를 만드는데 드는 시간을 절약하기 위해서 의존성의 연결고리가 많이 연결된 경우, 구현의 복잡함을 피하기 위해서 Spring Boot Test에서 Mock 사용(테스트 더블) 테스트 더블이란? 테스트를 진행하기 어려운 경우 테스트를 대신 진행할 수 있게 만드는 객체를 말합니다. Mo.. 2022. 12. 15.
[Test] DataJpaTest에서 MySQL 설정 문제 MySQL로 DB를 구성하고, application.yml에 설정까지 한 상태에서 테스트를 돌려보니 @DataJpaTest를 실행하려고 했더니 아래와 같은 'Failed to replace DataSource ~~~' 에러가 발생합니다. @DataJpaTest class UserInfoRepositoryTest { @Autowired private UserInfoRepository userInfoRepository; @Test void 정보가져오기(){ List all = userInfoRepository.findAll(); all.forEach(userInfo -> { System.out.println(userInfo.getName()); }); } } 원인 @AutoConfigureTestDat.. 2022. 12. 2.
[Mock과 Mocktio] @InjectMocks Mock과 Spy의 주입을 허용합니다. Mockito에서 가짜 객체를 주입하는 방식은 생성자 주입방식, Setter 주입방식, Field 주입방식이 있습니다.(DI와 동일) 생성자 주입방식(Constructor Injection) 생성자를 이용하여 가짜 객체를 주입하면 Mockito에서는 다른 주입방식을 시도하지 않습니다. => 매개변수가 있는 생성자가 있는 경우, 개체를 손상시키지 않기로 Mockito에서 결정 생성자 ConstructService를 만들어서 객체를 주입합니다. public class ConstructService { private RegionService regionService; public ConstructService(RegionService regionService) { thi.. 2021. 4. 11.
[Mock과 Mocktio] @Spy @SpyBean Mockito Document : https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html 참고 코드 https://github.com/journaldev/journaldev/tree/master/Mockito-Examples https://cobbybb.tistory.com/16 Spy Spy란? 실제 객체의 스파이를 생성하여 실제 객체의 메소드를 호출 할 수 있게 합니다. Spy 사용 public class SpyTest{ @Test void spyTest(){ List list = new LinkedList(); List spy = spy(list); when(spy.size()).thenReturn(100); /.. 2021. 4. 11.
LIST