서론 테스트 코드에 대한 공부 중에 Scrum, Kanban, XP(eXtreme Programing)과 같은 키워드가 등장했고 찾아보니 전부 애자일 방법론이라는 공통 뿌리를 발견하게 되었다. 소프트웨어 개발 방법론에는 여러가지가 있지만, 그 중 애자일 방법론이라는 키워드를 얻게 되어 공부를 위한 포스팅이다. 구글링 중 애자일 방법론이 등장한 배경과 같은 자료들도 많아서 읽어보았고 개인적으로 가장 잘 읽혔던 것을 하나 공유해둔다. '애자일은 뭐고 폭포수는 뭐야?' 애자일 방법론 역사 이해하기 요즘은 모든 기술 조직이 어떤 형태로든 애자일 방법론을 실천하거나 그렇게 하고 있다고 믿는 것 같다. 소프트웨어 개발에 처음 발을 들여놓는 사람 www.itworld.co.kr 폭포수(Waterfall) 방법론 폭포..
에러 메세지 org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "drop table if exists user cascade " via JDBC [Syntax error in SQL statement "drop table if exists [*]user cascade "; expected "identifier";] 원인 테스트 코드 공부를 마치고, 적용을 위해 토이 프로젝트를 진행하다 처음 마주친 에러이다. 에러 상황은 회원가입 시 User Entity에서 Repository를 통해 save할 때 발생하였으며 RED 상황이 아닌 hibernate에서 정말 에러를 뱉어내고 있었다. 테스트 로직은 아래처럼, RED 상황..
서론 본 포스팅은 아래의 인강을 듣고, 추가 공부가 필요한 내용들을 포함하여 정리한 포스팅입니다. Practical Testing: 실용적인 테스트 가이드 - 인프런 | 강의 이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강 www.inflearn.com private method를 테스트해야 하는가 강의에서는, private 메서드를 테스트할 필요가 없으며, private 메서드를 테스트 고려해야 할 때를 객체를 분리해야하는 시점인가? 라는 질문을 던져보라고 하였다. 아래의 코드는, 다음 상품번호를 생성해주는 ProductService에서 발췌한 private 메서..
서론 본 포스팅은 아래의 인강을 듣고, 추가 공부가 필요한 내용들을 포함하여 정리한 포스팅입니다. Practical Testing: 실용적인 테스트 가이드 - 인프런 | 강의 이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강 www.inflearn.com 테스트 환경 통합하기 (참고) IntelliJ에서 전체 테스트 수행 시 Gradle - Tasks - verification - test 강의 내 작성했던 코드를 가지고 전체 테스트를 돌려보았다. 작성한 단위테스트와 통합테스트 모두 돌아갔으며 로그가 남았다. 로그를 확인해보니 Spring Boot가 6번 등장했다. ..
서론 본 포스팅은 아래의 인강을 듣고, 추가 공부가 필요한 내용들을 포함하여 정리한 포스팅입니다. Practical Testing: 실용적인 테스트 가이드 - 인프런 | 강의 이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강 www.inflearn.com Dynamic Test 환경을 설정해놓고, 중간중간 변화를 주며 검증을하는 등의 시나리오를 테스트하고 싶을 때 사용한다. @TestFactory Stream exampleDynamicTest() { return Stream.of( dynamicTest("First Dynamic Test", () -> { // tes..
서론 본 포스팅은 아래의 인강을 듣고, 추가 공부가 필요한 내용들을 포함하여 정리한 포스팅입니다. Practical Testing: 실용적인 테스트 가이드 - 인프런 | 강의 이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강 www.inflearn.com Test Fixture 구성하기 중복 발생이 되는 상황들을 한 곳에 묶어 관리하는 개념으로 JUnit에서는, 동일하거나 유사한 개체 집합에 대해 작동하는 두 개 이상의 테스트가 있는 경우 Test Fixture 메서드의 사용을 권장한다. 굳이 메서드를 사용하지 않더라도 픽스처를 구성할 때, 원하는 파라미터만 명확히 ..
서론 본 포스팅은 아래의 인강을 듣고, 추가 공부가 필요한 내용들을 포함하여 정리한 포스팅입니다. Practical Testing: 실용적인 테스트 가이드 - 인프런 | 강의 이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강 www.inflearn.com 하나의 주제에 대한 테스트 수행 한 가지의 테스트에서는 한 가지 목적의 검증만을 수행하여야 한다. DisplayName을 한 문장으로 치환할 수 있는지에 대한 고민을 해보는 것이 좋다. 예를 들어, 조건문, 반복문이 들어간 테스트는 포괄적인 테스트가 될 수 있다. @DisplayName("동물이 동물원에 있는지 확인..
서론 본 포스팅은 아래의 인강을 듣고, 추가 공부가 필요한 내용들을 포함하여 정리한 포스팅입니다. Practical Testing: 실용적인 테스트 가이드 - 인프런 | 강의 이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강 www.inflearn.com Mock 사전적인 뜻은 모조품, 가짜 라는 뜻을 가지고 있으며, 테스트 진행 시 진행하고자 하는 실제 객체와 동일한 가짜 객체(Mock)를 만들어서 사용한다. 언제 사용해야 할까? 테스트 작성 환경 구축이 어려울때 특정 경우에 의존적일때 테스트 시간이 오래걸릴 때 Mock과 Stub 자주 사용되는 Mock과 Stub..