목록프로젝트/무물 (7)
barded
https://dzone.com/articles/7-popular-unit-test-naming 에 따르면 7가지를 추천한다.메서드명_테스트상태_기대결과이 전략에 대한 반대 의견은 메소드 이름이 코드 리팩토링의 일환으로 변경되면 테스트 이름도 변경되어야 하거나 나중에 이해하기 어려워질 수 있다는 점입니다. 다음은 몇 가지 예입니다:예시isAdult_AgeLessThan18_FalsewithdrawMoney_InvalidAccount_ExceptionThrownadmitStudent_MissingMandatoryFields_FailToAdmit메소드명_기대결과_테스트상태위의 방식에서 약간 변형된 방법으로, 일부 개발자들은 이 명명 방식을 추천합니다. 이 방식도 메소드 이름이 변경되면 나중에 이해하기 어려워..
통합 테스트 역할Contoller 계층 - Service 계층 - Repository 계층을 한번에 테스트를 진행하는 것이다.FromMeControllerIntegrationTest@ActiveProfiles("local")@Transactional@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)class FromMeControllerIntegrationTest { final String USERNAME = "USERNAME"; @Autowired WebTestClient webTestClient; @MockBean FromMeService fromMeService; static Stri..

Spring은 컨트롤러 엔드포인트를 테스트하기 위한 다양한 도구를 제공한다. MockMvc, WebTest Client 및 TestRestTemplate. 세 후보 모두 HTTP 엔드포인트 호출 및 응답 확인이라는 유사한 목표를 수행하지만, 이들 사이에는 여전히 자막 차이가 있고, 어느것을 선택할지 살펴보자.MockMvc용도: HTTP 서버를 시작하지 않고 Spring MVC 컨트롤러를 테스트할 때 이상적성능: 임베디드 서버가 필요하지 않아 빠르고 가볍습니다. 주로 단위 테스트에 적합.통합: Spring Security와 잘 연동되어 인증 및 권한 부여를 모킹할 수 있음.설정: @WebMvcTest와 함께 쉽게 설정할 수 있으며, 요청 빌딩 및 응답 검증을 위한 유창한 API를 제공WebTestClien..
Controller 계층의 단위 테스트 역할Controller 계층의 단위 테스트는 Service를 MockBean객체로 주입받은 후, 호출하여 예상한 결과가 맞는지 확인하면 된다.FromMeControllerTest@ActiveProfiles("local")@WebMvcTest(FromMeController.class)@MockBean(JpaMetamodelMappingContext.class)class FromMeControllerTest { final String USERNAME = "USERNAME"; @Autowired MockMvc mockMvc; @MockBean FromMeService fromMeService; @MockBean UserDetailSe..
Service 계층의 단위 테스트 역할Service 계층의 단위 테스트는 Repository를 Mock객체로 주입받은 후, Service를 호출하여 예상한 결과가 맞는지 확인하면 된다.FromMeServiceTest@ExtendWith(MockitoExtension.class)class FromMeServiceTest { @InjectMocks FromMeService fromMeService; @Mock PostRepository postRepository; @Mock CommentRepository commentRepository; @Mock UserRepository userRepository; @Mock OptionRepository optionRepository; @Mock VoteReposit..
Repository 계층의 단위 테스트 역할Repository 계층의 단위 테스트는 Mock객체 없이 데이터베이스와의 상호 작용이 올바르게 이루어지는지만 확인하면 된다.PostRepositoryTest@DataJpaTest@ActiveProfiles("test")@Import(QuerydslConfig.class)@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)class PostRepositoryTest { private final String USERNAME = "test"; @Autowired private UserRepository userRepository; @Autowired pri..
단위 테스트(Unit Test)란?단위 테스트(Unit Test)란 소프트웨어 개발에서 개별적인 작은 코드 조각(주로 함수나 메서드)을 독립적으로 테스트하는 것을 의미한다. 이는 특정 코드 조각이 예상대로 작동하는지 검증하는 데 목적을 둔다. 단위 테스트는 독립적으로 실행되며 자동화된 테스트 도구를 통해 수행된다. 또한, 단위 테스트는 작은 범위의 코드를 다루며 빠르게 실행된다. 주로 개발 초기 단계에서 버그를 조기에 발견하고 코드의 품질을 높이는 데 사용된다.통합 테스트(Integration Test)란?통합 테스트(Integration Test)란 소프트웨어 시스템의 여러 구성 요소가 통합되어 함께 작동하는지 검증하는 테스트이다. 단위 테스트와 달리, 통합 테스트는 시스템의 다양한 모듈 간의 상호작용..