用户,分区,作品的增删改查,根据作者查所有作品的接口,根据用户查还有多少任务没做,帖子和评论的增删改查,并优化了测试文件的结构
Change-Id: I4266495b6465fcbdf5705f02a59d2ae9fa54cbda
diff --git a/src/test/java/edu/bjtu/groupone/backend/CategoryControllerTest.java b/src/test/java/edu/bjtu/groupone/backend/CategoryControllerTest.java
deleted file mode 100644
index 23b8e65..0000000
--- a/src/test/java/edu/bjtu/groupone/backend/CategoryControllerTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package edu.bjtu.groupone.backend;
-
-import edu.bjtu.groupone.backend.api.CategoryController;
-import edu.bjtu.groupone.backend.domain.dto.CategoryDTO;
-import edu.bjtu.groupone.backend.domain.entity.Category;
-import edu.bjtu.groupone.backend.service.CategoryService;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.*;
-
-@ExtendWith(MockitoExtension.class)
-class CategoryControllerTest {
-
- @Mock
- private CategoryService categoryService;
-
- @InjectMocks
- private CategoryController categoryController;
-
- private Category testCategory;
-
- @BeforeEach
- void setUp() {
- testCategory = new Category();
- testCategory.setId(1L);
- testCategory.setName("Test Category");
- }
-
- @Test
- void createCategory_shouldReturnSuccess() {
- // 调用
- ResponseEntity<String> response = categoryController.createCategory(testCategory);
-
- // 验证
- assertEquals(HttpStatus.OK, response.getStatusCode());
- assertEquals("分区创建成功", response.getBody());
- verify(categoryService, times(1)).addCategory(any(Category.class));
- }
-
- @Test
- void deleteCategory_shouldReturnSuccess() {
- // 调用
- ResponseEntity<String> response = categoryController.deleteCategory(1L);
-
- // 验证
- assertEquals(HttpStatus.OK, response.getStatusCode());
- assertEquals("分区删除成功", response.getBody());
- verify(categoryService, times(1)).deleteCategory(1L);
- }
-
- @Test
- void updateCategory_shouldReturnSuccess() {
- // 调用
- ResponseEntity<String> response = categoryController.updateCategory(1L, testCategory);
-
- // 验证
- assertEquals(HttpStatus.OK, response.getStatusCode());
- assertEquals("分区更新成功", response.getBody());
- verify(categoryService, times(1)).updateCategory(any(Category.class));
- }
-
- @Test
- void getCategory_shouldReturnCategory() {
- // 模拟
- when(categoryService.getCategoryById(1L)).thenReturn(testCategory);
-
- // 调用
- ResponseEntity<Category> response = categoryController.getCategory(1L);
-
- // 验证
- assertEquals(HttpStatus.OK, response.getStatusCode());
- assertEquals(testCategory, response.getBody());
- verify(categoryService, times(1)).getCategoryById(1L);
- }
-
- @Test
- void getCategories_shouldReturnTree() {
- // 模拟
- CategoryDTO root = new CategoryDTO(1L, "Root");
- root.getChildren().add(new CategoryDTO(2L, "Child"));
- when(categoryService.getCategoryTree()).thenReturn(List.of(root));
-
- // 调用
- ResponseEntity<List<CategoryDTO>> response = categoryController.getCategories();
-
- // 验证
- assertEquals(HttpStatus.OK, response.getStatusCode());
- assertEquals(1, response.getBody().size());
- assertEquals(1, response.getBody().get(0).getChildren().size());
- verify(categoryService, times(1)).getCategoryTree();
- }
-}
\ No newline at end of file
diff --git a/src/test/java/edu/bjtu/groupone/backend/CommentServiceTest.java b/src/test/java/edu/bjtu/groupone/backend/CommentServiceTest.java
new file mode 100644
index 0000000..50ea9ba
--- /dev/null
+++ b/src/test/java/edu/bjtu/groupone/backend/CommentServiceTest.java
@@ -0,0 +1,81 @@
+package edu.bjtu.groupone.backend;
+
+import edu.bjtu.groupone.backend.domain.entity.Comment;
+import edu.bjtu.groupone.backend.mapper.CommentMapper;
+import edu.bjtu.groupone.backend.service.impl.CommentServiceImpl;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.*;
+
+@ExtendWith(MockitoExtension.class)
+public class CommentServiceTest {
+
+ @Mock
+ private CommentMapper commentMapper;
+
+ @InjectMocks
+ private CommentServiceImpl commentService;
+
+ private Comment comment;
+ private List<Comment> comments;
+
+ @BeforeEach
+ void setUp() {
+ comment = new Comment(1L, 1L, 1, "测试评论", "2023-06-15");
+ comments = Arrays.asList(comment);
+ }
+
+ @Test
+ void addComment() {
+ doNothing().when(commentMapper).insertComment(any(Comment.class));
+
+ commentService.addComment(comment);
+
+ verify(commentMapper, times(1)).insertComment(comment);
+ }
+
+ @Test
+ void deleteComment() {
+ doNothing().when(commentMapper).deleteComment(1L);
+
+ commentService.deleteComment(1L);
+
+ verify(commentMapper, times(1)).deleteComment(1L);
+ }
+
+ @Test
+ void updateComment() {
+ doNothing().when(commentMapper).updateComment(any(Comment.class));
+
+ commentService.updateComment(comment);
+
+ verify(commentMapper, times(1)).updateComment(comment);
+ }
+
+ @Test
+ void getCommentById() {
+ when(commentMapper.selectCommentById(1L)).thenReturn(comment);
+
+ Comment result = commentService.getCommentById(1L);
+
+ assertEquals(comment, result);
+ }
+
+ @Test
+ void getCommentsByPostId() {
+ when(commentMapper.selectCommentsByPostId(1L)).thenReturn(comments);
+
+ List<Comment> result = commentService.getCommentsByPostId(1L);
+
+ assertEquals(comments, result);
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/edu/bjtu/groupone/backend/PostServiceTest.java b/src/test/java/edu/bjtu/groupone/backend/PostServiceTest.java
new file mode 100644
index 0000000..5426db8
--- /dev/null
+++ b/src/test/java/edu/bjtu/groupone/backend/PostServiceTest.java
@@ -0,0 +1,81 @@
+package edu.bjtu.groupone.backend;
+
+import edu.bjtu.groupone.backend.domain.entity.Post;
+import edu.bjtu.groupone.backend.mapper.PostMapper;
+import edu.bjtu.groupone.backend.service.impl.PostServiceImpl;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.*;
+
+@ExtendWith(MockitoExtension.class)
+public class PostServiceTest {
+
+ @Mock
+ private PostMapper postMapper;
+
+ @InjectMocks
+ private PostServiceImpl postService;
+
+ private Post post;
+ private List<Post> posts;
+
+ @BeforeEach
+ void setUp() {
+ post = new Post(1L, 1, "测试帖子", "内容", "2023-06-15", 100);
+ posts = Arrays.asList(post);
+ }
+
+ @Test
+ void addPost() {
+ doNothing().when(postMapper).insertPost(any(Post.class));
+
+ postService.addPost(post);
+
+ verify(postMapper, times(1)).insertPost(post);
+ }
+
+ @Test
+ void deletePost() {
+ doNothing().when(postMapper).deletePost(1L);
+
+ postService.deletePost(1L);
+
+ verify(postMapper, times(1)).deletePost(1L);
+ }
+
+ @Test
+ void updatePost() {
+ doNothing().when(postMapper).updatePost(any(Post.class));
+
+ postService.updatePost(post);
+
+ verify(postMapper, times(1)).updatePost(post);
+ }
+
+ @Test
+ void getPostById() {
+ when(postMapper.selectPostById(1L)).thenReturn(post);
+
+ Post result = postService.getPostById(1L);
+
+ assertEquals(post, result);
+ }
+
+ @Test
+ void getAllPosts() {
+ when(postMapper.selectAllPosts()).thenReturn(posts);
+
+ List<Post> result = postService.getAllPosts();
+
+ assertEquals(posts, result);
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/edu/bjtu/groupone/backend/UserControllerTest.java b/src/test/java/edu/bjtu/groupone/backend/UserControllerTest.java
deleted file mode 100644
index 73c99ae..0000000
--- a/src/test/java/edu/bjtu/groupone/backend/UserControllerTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package edu.bjtu.groupone.backend;
-
-import edu.bjtu.groupone.backend.api.UserController;
-import edu.bjtu.groupone.backend.domain.entity.Result;
-import edu.bjtu.groupone.backend.domain.entity.User;
-import edu.bjtu.groupone.backend.service.UserService;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-
-import java.util.Arrays;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.*;
-
-@ExtendWith(MockitoExtension.class)
-class UserControllerTest {
-
- @Mock
- private UserService userService;
-
- @InjectMocks
- private UserController userController;
-
- private User testUser;
-
- @BeforeEach
- void setUp() {
- testUser = new User();
- testUser.setUserId(1);
- testUser.setUsername("testuser");
- testUser.setEmail("test@example.com");
- }
-
- @Test
- void deleteUser_shouldReturnSuccess() {
- // 调用
- Result<String> result = userController.deleteUser(1);
-
- // 验证:修改预期为英文 "success"
- assertEquals(0, result.getCode());
- assertEquals("success", result.getMsg()); // 修改这里
- verify(userService, times(1)).deleteUser(1);
- }
-
- @Test
- void updateUser_shouldReturnSuccess() {
- // 调用
- Result<String> result = userController.updateUser(1, testUser);
-
- // 验证:修改预期为英文 "success"
- assertEquals(0, result.getCode());
- assertEquals("success", result.getMsg()); // 修改这里
- verify(userService, times(1)).updateUser(any(User.class));
- }
-
- @Test
- void getUser_shouldReturnUser() {
- // 模拟
- when(userService.getUserById(1)).thenReturn(testUser);
-
- // 调用
- Result<User> result = userController.getUser(1);
-
- // 验证
- assertEquals(0, result.getCode());
- assertEquals(testUser, result.getData());
- verify(userService, times(1)).getUserById(1);
- }
-
- @Test
- void getAllUsers_shouldReturnUserList() {
- // 模拟
- List<User> users = Arrays.asList(testUser, new User());
- when(userService.getAllUsers()).thenReturn(users);
-
- // 调用
- Result<List<User>> result = userController.getAllUsers();
-
- // 验证
- assertEquals(0, result.getCode());
- assertEquals(2, result.getData().size());
- verify(userService, times(1)).getAllUsers();
- }
-}
\ No newline at end of file
diff --git a/src/test/java/edu/bjtu/groupone/backend/UserServImplTest.java b/src/test/java/edu/bjtu/groupone/backend/UserServImplTest.java
index e877de8..8475680 100644
--- a/src/test/java/edu/bjtu/groupone/backend/UserServImplTest.java
+++ b/src/test/java/edu/bjtu/groupone/backend/UserServImplTest.java
@@ -3,6 +3,7 @@
import edu.bjtu.groupone.backend.domain.entity.User;
import edu.bjtu.groupone.backend.mapper.UserMapper;
import edu.bjtu.groupone.backend.service.impl.UserServImpl;
+import edu.bjtu.groupone.backend.utils.EmailUtil;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -15,7 +16,6 @@
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
@@ -26,15 +26,20 @@
@InjectMocks
private UserServImpl userService;
+ @Mock
+ private EmailUtil emailUtil;
private User testUser;
-
+ private User user;
@BeforeEach
void setUp() {
testUser = new User();
testUser.setUserId(1);
testUser.setUsername("testuser");
testUser.setEmail("test@example.com");
+ user = new User();
+ user.setUserId(1);
+ user.setEmail("test@example.com");
}
@Test
@@ -87,4 +92,22 @@
assertEquals(2, result.size());
verify(userMapper, times(1)).selectAllUsers();
}
+ @Test
+ void getRemainingTasks_Success() {
+ when(userMapper.selectUserById(1)).thenReturn(user);
+ when(userMapper.countRemainingTasks(1)).thenReturn(3);
+
+ int result = userService.getRemainingTasks(1);
+
+ assertEquals(3, result);
+ }
+
+ @Test
+ void getRemainingTasks_UserNotFound() {
+ when(userMapper.selectUserById(999)).thenReturn(null);
+
+ int result = userService.getRemainingTasks(999);
+
+ assertEquals(-1, result);
+ }
}
\ No newline at end of file
diff --git a/src/test/java/edu/bjtu/groupone/backend/WorkControllerTest.java b/src/test/java/edu/bjtu/groupone/backend/WorkControllerTest.java
deleted file mode 100644
index 4c527c6..0000000
--- a/src/test/java/edu/bjtu/groupone/backend/WorkControllerTest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package edu.bjtu.groupone.backend;
-
-import edu.bjtu.groupone.backend.api.WorkController;
-import edu.bjtu.groupone.backend.domain.dto.WorkResponse;
-import edu.bjtu.groupone.backend.domain.entity.Category;
-import edu.bjtu.groupone.backend.domain.entity.Work;
-import edu.bjtu.groupone.backend.service.WorkService;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageImpl;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.http.ResponseEntity;
-
-import java.util.Collections;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-
-@ExtendWith(MockitoExtension.class)
-class WorkControllerTest {
-
- @Mock
- private WorkService workService;
-
- @InjectMocks
- private WorkController workController;
-
- private Work testWork;
- private WorkResponse testResponse;
-
- @BeforeEach
- void setUp() {
- testWork = new Work();
- testWork.setId(1L);
- testWork.setTitle("Test Work");
- testWork.setAuthor("Test Author");
- testWork.setViews(100);
-
- // 创建 Category 对象
- Category category = new Category();
- category.setId(1L);
- testWork.setCategory(category);
-
- // 使用正确的参数创建 WorkResponse
- testResponse = new WorkResponse(
- 1L,
- "Test Work",
- "Test Author",
- 100,
- 1L,
- "Test Description", // 新增 description 参数
- "2023-06-15"
- );
- }
-
- @Test
- void createWork_shouldReturnSuccess() {
- // 调用
- ResponseEntity<String> response = workController.createWork(testWork);
-
- // 验证
- assertEquals(200, response.getStatusCodeValue());
- assertEquals("作品创建成功", response.getBody());
- verify(workService, times(1)).addWork(any(Work.class));
- }
-
- @Test
- void deleteWork_shouldReturnSuccess() {
- // 调用
- ResponseEntity<String> response = workController.deleteWork(1L);
-
- // 验证
- assertEquals(200, response.getStatusCodeValue());
- assertEquals("作品删除成功", response.getBody());
- verify(workService, times(1)).deleteWork(1L);
- }
-
- @Test
- void updateWork_shouldReturnSuccess() {
- // 调用
- ResponseEntity<String> response = workController.updateWork(1L, testWork);
-
- // 验证
- assertEquals(200, response.getStatusCodeValue());
- assertEquals("作品更新成功", response.getBody());
- verify(workService, times(1)).updateWork(any(Work.class));
- }
-
- @Test
- void getWork_shouldReturnWork() {
- // 模拟
- when(workService.getWorkById(1L)).thenReturn(testWork);
-
- // 调用
- ResponseEntity<Work> response = workController.getWork(1L);
-
- // 验证
- assertEquals(200, response.getStatusCodeValue());
- assertEquals(testWork, response.getBody());
- verify(workService, times(1)).getWorkById(1L);
- }
-
- @Test
- void getWorks_shouldReturnPage() {
- // 创建模拟分页数据
- Page<WorkResponse> mockPage = new PageImpl<>(
- Collections.singletonList(testResponse),
- PageRequest.of(0, 10),
- 1
- );
-
- // 模拟服务层方法
- when(workService.getWorks(eq(null), eq(1), eq(10)))
- .thenReturn(mockPage);
-
- // 调用
- ResponseEntity<Page<WorkResponse>> response = workController.getWorks(null, 1, 10);
-
- // 验证
- assertEquals(200, response.getStatusCodeValue());
- assertNotNull(response.getBody());
- assertEquals(1, response.getBody().getTotalElements());
- assertEquals(1, response.getBody().getContent().size());
- assertEquals("Test Work", response.getBody().getContent().get(0).getTitle());
- verify(workService, times(1)).getWorks(null, 1, 10);
- }
-}
\ No newline at end of file
diff --git a/src/test/java/edu/bjtu/groupone/backend/WorkServiceTest.java b/src/test/java/edu/bjtu/groupone/backend/WorkServiceTest.java
index 5277d54..b3871da 100644
--- a/src/test/java/edu/bjtu/groupone/backend/WorkServiceTest.java
+++ b/src/test/java/edu/bjtu/groupone/backend/WorkServiceTest.java
@@ -15,31 +15,29 @@
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyList;
+import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
class WorkServiceTest {
@Mock
- private WorkMybatisMapper mapper;
+ private WorkMybatisMapper workMybatisMapper;
@Mock
private CategoryService categoryService;
@InjectMocks
- private WorkService service;
+ private WorkService workService;
private Work testWork;
private Category testCategory;
+ private List<Work> works;
@BeforeEach
void setUp() {
@@ -52,61 +50,71 @@
.views(100)
.category(testCategory)
.build();
+
+ Category category = new Category(1L, "文学艺术", null);
+ works = Arrays.asList(
+ new Work(1L, "《我的世界》", "张三", 1234, category, "一部关于...", "2023-06-15"),
+ new Work(2L, "《你的世界》", "张三", 567, category, "另一部关于...", "2023-06-16")
+ );
}
@Test
void addWork_shouldCallMapper() {
- // 调用
- service.addWork(testWork);
-
- // 验证
- verify(mapper, times(1)).save(testWork);
+ workService.addWork(testWork);
+ verify(workMybatisMapper, times(1)).save(testWork);
}
@Test
void deleteWork_shouldCallMapper() {
- // 调用
- service.deleteWork(1L);
-
- // 验证
- verify(mapper, times(1)).deleteById(1L);
+ workService.deleteWork(1L);
+ verify(workMybatisMapper, times(1)).deleteById(1L);
}
@Test
void updateWork_shouldCallMapper() {
- // 调用
- service.updateWork(testWork);
-
- // 验证
- verify(mapper, times(1)).update(testWork);
+ workService.updateWork(testWork);
+ verify(workMybatisMapper, times(1)).update(testWork);
}
@Test
void getWorkById_shouldReturnWork() {
- // 模拟
- when(mapper.findById(1L)).thenReturn(testWork);
-
- // 调用
- Work result = service.getWorkById(1L);
-
- // 验证
+ when(workMybatisMapper.findById(1L)).thenReturn(testWork);
+ Work result = workService.getWorkById(1L);
assertEquals(testWork, result);
- verify(mapper, times(1)).findById(1L);
+ verify(workMybatisMapper, times(1)).findById(1L);
}
@Test
void getWorks_shouldReturnPage() {
- // 模拟
- Page<Work> workPage = new PageImpl<>(Collections.singletonList(testWork));
- when(categoryService.getAllSubcategoryIds(1L)).thenReturn(Arrays.asList(1L, 2L));
- when(mapper.findByCategoryIdIn(anyList(), any(Pageable.class))).thenReturn(workPage);
+ Long categoryId = 1L;
+ int page = 1; // Fix: Use page = 1 to account for WorkService expecting 1-based indexing
+ int size = 10;
+ List<Long> categoryIds = Arrays.asList(1L);
- // 调用
- Page<WorkResponse> result = service.getWorks(1L, 1, 10);
+ when(categoryService.getAllSubcategoryIds(categoryId)).thenReturn(categoryIds);
+ Page<Work> workPage = new PageImpl<>(Arrays.asList(testWork));
+ when(workMybatisMapper.findByCategoryIdIn(categoryIds, PageRequest.of(0, size))).thenReturn(workPage);
- // 验证
- assertEquals(1, result.getTotalElements());
- assertEquals("Test Work", result.getContent().get(0).getTitle());
- verify(mapper, times(1)).findByCategoryIdIn(anyList(), any(Pageable.class));
+ Page<WorkResponse> result = workService.getWorks(categoryId, page, size);
+
+ assertEquals(1, result.getContent().size());
+ verify(categoryService, times(1)).getAllSubcategoryIds(categoryId);
+ verify(workMybatisMapper, times(1)).findByCategoryIdIn(categoryIds, PageRequest.of(0, size));
+ }
+
+ @Test
+ void getWorksByAuthor_Success() {
+ when(workMybatisMapper.findByAuthor("张三")).thenReturn(works);
+ List<WorkResponse> result = workService.getWorksByAuthor("张三");
+ assertEquals(2, result.size());
+ assertEquals("《我的世界》", result.get(0).getTitle());
+ assertEquals("《你的世界》", result.get(1).getTitle());
+ }
+
+ @Test
+ void getWorksByAuthor_Empty() {
+ when(workMybatisMapper.findByAuthor(anyString())).thenReturn(List.of());
+ List<WorkResponse> result = workService.getWorksByAuthor("李四");
+ assertTrue(result.isEmpty());
}
}
\ No newline at end of file
diff --git a/src/test/resources/application-test.properties b/src/test/resources/application-test.properties
index b216159..a390de5 100644
--- a/src/test/resources/application-test.properties
+++ b/src/test/resources/application-test.properties
@@ -2,7 +2,7 @@
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
-spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
-spring.jpa.hibernate.ddl-auto=create-drop
spring.h2.console.enabled=true
-spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
\ No newline at end of file
+spring.sql.init.mode=always
+spring.sql.init.schema-locations=classpath:schema.sql
+spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
\ No newline at end of file