TDD(3)
-
테스트 주도 개발 시작하기
실무를 하면서 테스트 코드의 중요성에 대해서 인지하게 되었다. 테스트 코드를 얼마나 잘 짜고 활용하냐에 따라 내가 짠 코드의 안정성이 올라가고 버그가 낮은 코드가 생기는 것을 느꼈디. 그래서 테스트 그리고 TDD에 대해서 공부하고 싶어서 아래 책을 구매하게 되었다. 같이 TDD에 대해서 공부해봅시다! https://book.naver.com/bookdb/book_detail.naver?bid=16267566 테스트 주도 개발 시작하기 작동하는 깔끔한 코드를 만드는 데 필요한 습관- JUNIT 5를 이용한 테스트 주도 개발 안내- 테스트 작성과 설계를 위한 대역- 테스트 가능한 설계 방법 안내- 유지보수하기 좋은 테스트 작성법 book.naver.com
2022.07.04 -
[assertJ] isEqualTo vs isSameAs 비교
테스트 코드 작성 중 asserThat().isEqualTo랑 asserThat().isSameAs의 차이점이 궁금해서 찾아보게 되었다. 결과부터 말하자면 - isEqualTo : 값 자체를 비교하는 것이다 (ex. 5 == 5, "a" == "b") -> 동등성 비교 - isSameAs : 객체 참조 주소값을 비교하는 것이다. (ex Car a , Car b => a==b) -> 동일성 비교 아래의 그림 2, 3의 코드를 보면 더 자세히 이해할 수 있을것이다.
2022.03.30 -
@Transactional,@Commit
JPA에서 DB 연산(C,R,U,D)은 Transaction 단위 안에서 실행된다. 즉, 트랜잭션이 없는 연산은 실행될 수가 없다. JPA에서는 @Transactional라는 어노테이션을 제공하여 트랜잭션 기능을 제공한다. 실제 코드를 보면서 이해해 보자! 아래의 실제 테스트를 진행 중 그림 1과 같이 오류메시지가 나타났고 확인해 보니 "현재 스레드에 엔티티 매니저가 없다 그래서 persist 함수를 호출할 수가 없다"라는 에러 메시지가 뜬것을 확인할 수 있다. 앞에서 언급했듯이 JPA는 Transcation 단위 안에서 실행되므로 @Transactional 어노테이션을 입력해주면 실행이 된다! @Transactional 어노테이션을 추가 후 실행하였다.(그림 2 참고) 그런데... 실행은 잘 됐는데 D..
2022.03.30