Можно ли отменить свойство Spring Boot, для тестовых целей?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Можно ли отменить свойство Spring Boot, для тестовых целей?

Сообщение Anonymous »

У меня есть тест TestContainers с MongoDB, где кажется проблематичным установить учетные данные пользователя / пароль по умолчанию. Этот тест ниже работает без учетных данных: < /p>

Код: Выделить всё

@Testcontainers
@SpringBootTest
public class SpringContextWithMongoTest
{
@Container
static MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:6.0.20-jammy")
.withExposedPorts(27017)
.waitingFor( Wait.forListeningPort() );

@DynamicPropertySource
static void registerMongoProperties( DynamicPropertyRegistry registry ) {
mongoDBContainer.start();
registry.add("spring.data.mongodb.host", mongoDBContainer::getHost);
registry.add("spring.data.mongodb.port", mongoDBContainer::getFirstMappedPort);
}

@Test
public void contextLoads() {
}
}
Однако основное приложение подключается к MongoDB, который имеет учетные данные, и они настроены в SRC/Main/Resources/Application.properties Итак: < /p>

Код: Выделить всё

spring.data.mongodb.username=mongo
spring.data.mongodb.password=mongo
spring.data.mongodb.database=stackoverflow
spring.data.mongodb.port=27017
spring.data.mongodb.host=localhost
Эти учетные данные о свойствах мешают запуску теста. /code> с пустыми значениями: < /p>

Код: Выделить всё

spring.data.mongodb.username=
spring.data.mongodb.password=
< /code>
Я также попытался изменить метод динамических свойств: < /p>
    @DynamicPropertySource
static void registerMongoProperties( DynamicPropertyRegistry registry ) {
mongoDBContainer.start();
registry.add("spring.data.mongodb.host", mongoDBContainer::getHost);
registry.add("spring.data.mongodb.port", mongoDBContainer::getFirstMappedPort);
registry.add("spring.data.mongodb.username", () -> null);
registry.add("spring.data.mongodb.password", () -> null);
}
< /code>
Это также не может привести тест. Я полагаю, что тест не удается, потому что мы предоставляем учетные данные, когда Монго не ожидал, что нет. 
, но это не полезно для основной загрузки приложения.
#spring.data.mongodb.username=mongo
#spring.data.mongodb.password=mongo
< /code>
Я знаю, что это может показаться проблемой x-y, в том, что, возможно, я должен попытаться настроить тестовый контейнер, чтобы требовать учетных данных, но я все еще думаю, что это разумный вопрос, чтобы задать :
Как вы можете отказаться от пружинных свойств загрузки для теста?

Подробнее здесь: https://stackoverflow.com/questions/793 ... t-purposes
Ответить

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

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

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

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

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