Skip to content

Commit

Permalink
✅ Test: PostApiControllerTest생성예외
Browse files Browse the repository at this point in the history
  • Loading branch information
chanmin97 committed Apr 22, 2024
1 parent f8f28c5 commit c416a97
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 1 deletion.
1 change: 1 addition & 0 deletions spring-boot-api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ dependencies {
runtimeOnly 'com.mysql:mysql-connector-j'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
implementation 'org.springframework.boot:spring-boot-starter-validation'
// for lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
import com.ssafy.springbootapi.domain.post.dto.PostResponse;
import com.ssafy.springbootapi.domain.post.dto.UpdatePostRequest;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;
Expand All @@ -21,7 +23,7 @@ public class PostController {
private final PostService postService;

@PostMapping("/api/v1/posts")
public ResponseEntity<Post> addPost(@RequestBody AddPostRequest request) {
public ResponseEntity<Post> addPost(@Validated @RequestBody AddPostRequest request) {
Post savedPost = postService.save(request);

return ResponseEntity.status(HttpStatus.CREATED)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.ssafy.springbootapi.domain.post.dto;

import com.ssafy.springbootapi.domain.post.domain.Post;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -10,8 +12,12 @@
@AllArgsConstructor
@Getter
public class AddPostRequest {
@NotEmpty
@NotNull
private String title;

@NotEmpty
@NotNull
private String content;

public Post toEntity() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,32 @@ public void mockMvcSetUp() {
assertThat(posts.get(0).getContent()).isEqualTo(content);
}

@DisplayName("게시글 생성 실패 테스트 - 유효하지 않은 입력 값")
@Test
public void 게시글생성실패테스트_유효하지않은입력값() throws Exception {
// given
final String url = "/api/v1/posts";
final String invalidTitle = ""; // 유효하지 않은 제목
final String invalidContent = ""; // 유효하지 않은 내용
final AddPostRequest userRequestWithInvalidData = new AddPostRequest(invalidTitle, invalidContent);

final String requestBody = objectMapper.writeValueAsString(userRequestWithInvalidData);

// when
ResultActions result = mockMvc.perform(post(url)
.contentType(MediaType.APPLICATION_JSON_VALUE)
.content(requestBody));

// then
result.andExpect(status().isBadRequest()); // 400 Bad Request 상태 코드 예상

List<Post> posts = postRepository.findAll();

// 게시글이 생성되지 않았으므로, 저장된 게시글이 없어야 함
assertThat(posts.size()).isEqualTo(0);
}


@DisplayName("게시글 전부 조회 성공 테스트")
@Test
public void 게시글전부조회성공테스트() throws Exception {
Expand Down

0 comments on commit c416a97

Please sign in to comment.