Как издеваться над базой данных?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как издеваться над базой данных?

Сообщение Anonymous »

У меня есть приложение весенней загрузки из стартового веб-приложения.
spring.application.name=demo
spring.datasource.url=jdbc:postgresql://localhost:5432/sample
spring.datasource.username=admin
spring.datasource.password=admin
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update

Ниже приведены зависимости, которые я включил.
annotationProcessor 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-docker-compose'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
runtimeOnly 'org.postgresql:postgresql'
testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.26.3'

Все, что я делаю, это обрабатываю запрос POST от конечной точки /reader и использую функцию JpaRepository.save() чтобы сохранить запись.
При запуске с ./gradlew bootRun все работает как положено, кроме теста. Я попробовал множество руководств с использованием различных аннотаций, но безуспешно.
Насколько я понимаю, Spring Boot создает соединение с БД в начале приложения. Итак, для тестирования, как мне просто отключить конфигурацию БД и имитировать репозиторий, чтобы вернуть искажаемый объект?
Следующее не удается с org.postgresql.util.PSQLException: подключение к localhost: 5432 отклонено. Ошибка.
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class ReaderControllerTest {
@LocalServerPort
private int port;

@Mock
private ReaderRepository readerRepository;

@Autowired
private MockMvc mockMvc;

@Test
void createUserTest() throws Exception {
var newReader = new Reader();
newReader.setName("user");
newReader.setEmail("user@email.com");

Mockito.when(readerRepository.save(null)).thenReturn(newReader);

mockMvc
.perform(
post("http://localhost:" + port + "/user").contentType("application/json").content("{\"name\": \"test\"}"))
.andExpect(status().isOk());
}
}


Подробнее здесь: https://stackoverflow.com/questions/788 ... e-database
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»