Presentation Layer(Controller) 테스트1. WebMvcTest와 MockBean// 테스트 하고자하는 컨트롤러 명시@WebMvcTest(controllers = ProductController.class)class ProductControllerTest { @Autowired private MockMvc mockMvc; // 2번에서 설명 @Autowired private ObjectMapper objectMapper; // 서비스 layer에 MockBean 명시 @MockBean private ProductService productService; // ProductRepository까지 명시해줄 필요는 없음. // 여기서의..
자주 쓰이는 assertThat 메서드 1. 단순 값 비교@Testpublic void testSimpleValueComparison() { int a = 3 + 5; assertThat(a).isEqualTo(8);} 2. 문자열 비교@Testpublic void testStringComparison() { String str = "Hello, World!"; assertThat(str).isEqualTo("Hello, World!"); assertThat(str).startsWith("Hello"); assertThat(str).endsWith("World!"); assertThat(str).contains("Hello"); assertThat(str).is..
TDD(Test-Driven Development) 테스트 주도 개발프로덕션 코드보다 테스트 코드를 먼저 작성하여 테스트가 구현 과정을 주도하도록 하는 방법론간단하게 TDD의 순서를 표현하자면,실패한 테스트 코드를 짠다.어떻게든 성공시킨다.코드를 개선시킨다.이 사이클을 반복하는 것이 바로 테스트 주도 개발, TDD이다. 극단적으로 아주 쉬운 예시를 들어보자. 1. 실패한 테스트 코드를 짠다.인자를 2개 받아서, 더해주는 메서드를 TDD로 개발해보자// 테스트 코드 먼저 작성@Testvoid plus() { int result = plus(3, 4); assertThat(result).isEqualTo(7);}// 프로덕션 코드private int plus(int a, int b) { re..
SW마에스트로 15기 2차 코딩테스트 복기문제는 총 5문제였고, 알고리즘 4문제, SQL 1문제가 나왔다.난이도는 체감상 1차보다 훨씬 어려웠다. 난이도가 높아서 내 실력으로는 가늠할 수가 없었다.최소 평균 골드3 정도?제한시간은 1차 때와 똑같이 문제당 10초였고, 메모리는 2GB였다.시험시간은 똑같이 총 120분이었다.SQL을 먼저 푸는데, 변수를 활용해야하는 문제가 나와버렸다. 기존에 알고 있던 내용으로 풀 수 없을까 고민하다가 포기했다..1번은 20분 이내로 풀었고, 2,3,4번이 안풀려서 계속 왔다갔다 거리다가 시간이 다 지나갔고, 결국 2번을 깡 DFS로 풀고 제출했다.제출하자마자 든 생각은,,"아.. 떨어졌다.."너무 허무했다. 1차 때, 10분 남기고 5문제를 다 풀어서, 2차도 해볼만 하..