본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

27일차 - MockMvc, tailwind&Daisy UI, Toastr, @Transactional, Git 명령어

@AutoConfigureMockMvc

@SpringBootTest
@AutoConfigureMockMvc

- 실제 운영 환경에서 사용될 클래스들을 통합하여 테스트한다.

- 단위 테스트와 같이 기능 검증을 위한 것이 아니라, Spring Framework에서 전체적으로 flow가 제대로 동작하는지 검증하기 위해 사용한다.

- 애플리케이션의 Bean, 설정을 모두 로드한다. => 운영 환경과 가장 유사하게 테스트할 수 있다. but 시간이 오래 걸린다.

- 간단하게 테스트하기 위해서는 @WebMvcTest를 사용해야 한다.(같이 사용하면 서로의 MockMvc를 모킹해서 충돌 발생)

MockMvc

@Autowired
MockMvc mvc;

- 실제 객체와 비슷한 모의 객체

- 테스트 작성을 위한 환경 구축이 어려운 경우 Mock 객체를 이용하면 쉽게 테스트할 수 있다.

MockMvc 메서드

perform() : 브라우저에서 서버에 URL 요청을 하듯 컨트롤러를 실행시킬 수 있다. get(), post(), put(), delete() 제공

andExpect() : 응답 결과를 검증할 수 있다.

    status() : 응답 상태 코드 검증

    andDo() : 요청/응답 메시지 확인


참고

https://elevatingcodingclub.tistory.com/61

 

[SpringBoot] Test(2) MockMvc를 이용해서 테스트하기(@WebMvcTest, @AutoConfigureMockMvc)

Mock - Mock이라는 단어를 사전에서 찾아보면 '테스트를 위해 만든 모형'을 의미한다. - 테스트를 위해 실제 객체와 비슷한 모의 객체를 만드는 것을 모킹(Mocking)이라고 하며, 모킹한 객체를 메모리

elevatingcodingclub.tistory.com


tailwind & Daisy UI

<body>
    <link href="https://cdn.jsdelivr.net/npm/daisyui@2.51.5/dist/full.css" rel="stylesheet" type="text/css"/>
    <script src="https://cdn.tailwindcss.com"></script>
    
    ...
    
</body>

위와 같이 사용하면 된다.

tailwind가 있어야 데이지 UI를 사용할 수 있다.

body에 코드를 넣어주는 이유는.. 그냥 버그라고 한다..


toastr

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.1.4/toastr.min.js"></script>
<link rel="stylesheet" href="https://jhs512.github.io/toastr/toastr.css">

toastr를 사용하기 위해서는 jQuery도 있어야 한다.

jQuery : HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 크로스 플랫폼의 자바스크립트 라이브러리


@Transactional

해당 범위 내의 메서드가 트랜잭션이 되도록 보장한다.
메서드가 포함하고 있는 작업 중에 하나라도 실패하면 전체 작업을 취소한다.

@Transactional(readOnly = true)

 

select만 일어나는 부분임을 명시

read/write를 수행하는 마스터 DB, read만 수행하는 슬레이브 DB 중 슬레이브 DB에서 select를 수행할 수 있도록 한다. => 마스터 DB로 요청이 집중되는 것을 막는다.

@Transactional(readOny = false) <= default : insert, update, delete가 일어나는 부분임을 명시


@CreatedDate, @LastModifiedDate 사용하기

@EnableJpaAuditing이 있어야 @EntityListeners(AuditingEntityListener.class)가 작동하고,

@EntityListeners(AuditingEntityListener.class)가 있어야 @CreatedDate, @LastModifiedDate가 작동한다.


* HTML 파일 작업 중 필요 없는(?) 에러가 발생할 때(빨간 줄 뜰 때)

File > Settings > Inspections에서 XML > Unbound namespace prefix, Unresolved 'id' reference 체크 해제


Git

브랜치 목록 조회

git branch

로컬 브랜치 조회

  

git branch -r

원격 브랜치 조회

  

git branch -a

모든 브랜치 조회

  

git branch -D 브랜치_이름

브랜치 삭제