Spring/test 3

[테스트 코드] 테스트 코드 작성 문법

https://www.baeldung.com/introduction-to-assertj 1. Assertions.assertThat(something) 1) 개념 something에 객체, 컬렉션, 스트링 등을 담아 놓고 뒤에 체인 방법으로 다른 메서드를 달아 그 메서드에 맞는지 아닌지를 검증 할 수 있게 해 준다. 2) 방법 Assertions.assertThat("abc").isLowerCase() //소문자인지 확인후 소문자가 맞으면 테스트 성공, 아니면 테스트 실패 2. assertThat(객체) 1) isEqualTo 객체의 값이 같은지 비교

Spring/test 2023.03.08

[테스트 코드] 테스트 코드 관련 어노테이션

1. @SpringBootTest 1) 개념 통합 테스트를 위한 환경을 준비해준다. 모든 빈들을 스캔하고 애플리케이션 컨텍스트를 생성하여 테스트를 실행. 2. @Transactional 1) 개념 각각의 테스트를 실행할 때마다 트랜잭션을 시작하고 테스트가 끝나면 트랜잭션을 강제로 롤백한다. 따라서 테스트를 진행하면서 데이터베이스에 저장한 데이터가 테스트가 끝나면 롤백되므로 반복해서 테스트를 진행할 수 있다. 3. @Autowired 1) 개념 의존 관계를 자동으로 주입해준다 4. @Test 1) 개념 테스트를 수행하는 메소드를 의미. 각각의 테스트가 서로 영향을 주지 않고 독립적으로 실행됨을 원칙으로 @Test마다 객체를 생성. 5. @WebMvcTest 1) 개념 스프링은 특정 부분만 테스트할 수 있는..

Spring/test 2023.03.08

[테스트 코드] 테스트 코드의 개념과 필요한 이유

1. TDD와 단위테스트 1) TDD 개념 테스트가 주도하는 개발 방법 테스트 코드를 먼저 작성 테스트가 통과하는 프로덕션 코드를 작성 테스트가 통과하면 프로덕션 코드를 리팩토링 2) 단위테스트 개념 기능 단위의 테스트 코드를 작성하는 것 특징 테스트 코드를 꼭 먼저 작성해야 하는 것은 아님 리팩토링이 포함되지 않음 2. 테스트 코드 1) 장점 빠른 피드백이 가능 테스트 코드가 없으면 코드 수정이 발생한 경우 톰캣을 껐다가 켜는 행위를 반복해야 해서 비효율 자동 검증 가능 포스트맨이나 System.out.println()을 사용해서 수동 검증을 하지 않아도 돼서 편리 개발자가 만든 기능을 안전하게 보호 A라는 기능이 있고 B라는 기능을 추가했을 때 테스트코드가 있으면 A기능이 여전히 되는지 편리하게 확인..

Spring/test 2023.03.08