https://github.com/marouane-elgoumiri/blog_app_springboot
Spring Boot MVC project
https://github.com/marouane-elgoumiri/blog_app_springboot
backenddevelopment java postgresql spring-boot
Last synced: 4 days ago
JSON representation
Spring Boot MVC project
- Host: GitHub
- URL: https://github.com/marouane-elgoumiri/blog_app_springboot
- Owner: Marouane-Elgoumiri
- Created: 2024-04-17T10:53:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-26T16:35:03.000Z (7 months ago)
- Last Synced: 2025-04-08T05:13:57.000Z (3 months ago)
- Topics: backenddevelopment, java, postgresql, spring-boot
- Language: Java
- Homepage:
- Size: 103 KB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Blog App with Spring Boot
[](Link)
[](Link)
[](Link)
[](Link)
[](Link)
## Junit testing in Spring Boot:

In this example we'll write test for the Users package
### Package com.example.blog_app_springboot.users:```java
package com.example.blog_app_springboot.users;import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ActiveProfiles;@DataJpaTest
@ActiveProfiles("test")
public class UsersRepoTests {
@Autowired
private UserRepository userRepository;
@Test
@Order(1)
void can_create_user() {
var user = UserEntity.builder()
.username("adminoq")
.password("adminoq")
.email("[email protected]").build();
userRepository.save(user);
}
}```
### Setting up the JpaTestConfig:
```java
@Configuration
public class JpaTestConfig {
@Bean
@Profile("test")
public DataSource dataSource() {
var dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.h2.Driver");
dataSource.setUrl("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1");
return dataSource;
}
}```
### Test Result:
### UsersServiceTests.java:
```java
public class UsersServiceTests {
@Autowired
UserService userService;@Test
void can_create_users() {
var user = userService.createUser(new CreateUserRequest(
"najat Oracle",
"15062024",
"[email protected]"
));Assertions.assertNotNull(user);
Assertions.assertEquals("najat Oracle", user.getUsername());
}
}
```
#### Test Result:
## Setting up Error Exception Handler
### Create an ErrorResponse class:
```java
package com.example.blog_app_springboot.common.dtos;import lombok.Builder;
import lombok.Data;@Builder
@Data
public class ErrorResponse {
private String message;
private String details;
}```
### Creating the Response entity
```java
@ExceptionHandler({
UserService.UserNotFoundException.class
})
ResponseEntity handleUSerNotFoundException(Exception ex){
String message;
HttpStatus status;
if(ex instanceof UserService.UserNotFoundException){
message = ex.getMessage();
status = HttpStatus.NOT_FOUND;
}else{
message = "Something went wrong";
status = HttpStatus.INTERNAL_SERVER_ERROR;
}
ErrorResponse response = ErrorResponse.builder()
.message(message)
.build();
return ResponseEntity.status(status).body(response);
}
```### Example of use:
```JSON
{
"message": "User with Username: saidox not found",
"details": null
}
```
