728x90
게시글 조회 테스트를 위해 게시글 100개를 입력할 테스트 코드를 작성
1. 데이터를 전송하고 조회하기 위한 DTO 생성
@Setter
@Getter
public class BoardDTO {
private long no;
private String title;
private String content;
private int readCount;
private LocalDateTime createDate;
private LocalDateTime updateDate;
}
DTO란? "Data Transfer Object"의 약자로, 데이터 전송 객체를 의미
- Board 객체의 필드를 가지고 있는 BoardDTO라는 클래스를 생성하여 데이터를 담아 전달할 수 있다. 이러한 방식으로 데이터 전송에 사용되는 것이 DTO
2. BoardMapper 인터페이스 생성
@Mapper
public interface BoardMapper {
void boardSave(BoardDTO dto);
}
Mapper란? MyBatis 프레임워크와 연동하여 데이터베이스의 쿼리(SQL)를 실행하는 역할을 수행하는 인터페이스
- Mapper 인터페이스는 XML 파일 또는 어노테이션을 통해 SQL 쿼리를 매핑하고, Mapper 인터페이스의 메서드를 호출하면 MyBatis가 해당 메서드와 매핑된 SQL 쿼리를 실행한다.
3. board-mapper.xml 생성
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moo.project.config.mapper.BoardMapper">
<insert id="boardSave">
insert into board(title, content) values(#{title}, #{content});
</insert>
</mapper>
xml이란? MyBatis 프레임워크에서 SQL 쿼리와 자바 객체를 매핑하는 데 사용되는 파일
- BoardMapper의 메서드 이름(boardSave)과 board-mapper.xml 파일의 id이름(boardSave)이 같아야 매핑됨
- #{}은 MyBatis에서 파라미터 바인딩을 위해 사용되는 플레이스홀더(placeholder)로서, SQL 쿼리 내에서 동적으로 값을 전달하거나 매핑할 때 사용된다.
4. 게시글 입력 테스트 코드 작성
@SpringBootTest
class BoardProject01ApplicationTests {
@Autowired
private BoardMapper mapper;
@Test
public void boardWrite() {
for(int i=1; i<=100; i++) {
BoardDTO dto = new BoardDTO();
dto.setTitle("제목테스트"+i);
dto.setContent("내용테스트"+i);
mapper.boardSave(dto);
}
}
}
소스코드 화면에서 우클릭 -> JUnit Test를 클릭하면 테스트 코드가 실행된다. 초록바가 뜨면 테스트 성공
하이디SQL에서 board 테이블을 확인해 보면 1부터 100번까지 게시글 데이터가 입력된 것을 확인할 수 있다.
728x90
'프로젝트 > 게시판' 카테고리의 다른 글
[SpringBoot] 게시판 6. 게시글 입력 기능 구현 (0) | 2023.08.03 |
---|---|
[SpringBoot] 게시판 5. 게시글 상세보기 페이지 구현 (0) | 2023.08.03 |
[SpringBoot] 게시판 4. 게시글 조회 기능 +페이징 처리 - 비동기 구현 (0) | 2023.08.02 |
[SpringBoot] 게시판 2. Spring Starter Project 프로젝트 생성, 데이터베이스 설정(MariaDB, MyBatis) (0) | 2023.07.30 |
[SpringBoot] 게시판 1. MariaDB 테이블 생성(게시글, 댓글) (0) | 2023.07.28 |