У меня есть приложение весенней загрузки из стартового веб-приложения.
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
Как издеваться над базой данных? ⇐ JAVA
Программисты JAVA общаются здесь
1722344870
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());
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78811476/how-to-mock-the-database[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия