Context Springboottest с mapstruct.mapper beanJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Context Springboottest с mapstruct.mapper bean

Сообщение Anonymous »

Я работаю в приложении, где мне нужно сопоставить некоторые ввод в класс объектов, и я использую Mapstruct, как это: < /p>

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

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingConstants;
import org.mapstruct.NullValueCheckStrategy;

import java.math.BigDecimal;

@Mapper(componentModel = MappingConstants.ComponentModel.SPRING,
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface MyEntityMapper {

@Mapping(source = "source1", target = "target1")
@Mapping(source = "source2", target = "target2")
MyEntity toMyEntity(MyInput input);
}
< /code>
А затем я добавляю тест Springboot, чтобы проверить отображение, как и ожидалось, < /p>
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;

import java.math.BigDecimal;

import static org.assertj.core.api.Assertions.assertThat;

@SpringBootTest(classes = MyEntityMapper.class)
class MyEntityMapperTest {

@Autowired
private MyEntityMapper underTest;

@Test
@DisplayName("Entity mapped when input provided")
void test_toMyEntity_returnsMappedEntity_whenInputProvided() {
MyEntity result = underTest.toMyEntity(MyInputRepository.basicInput());
assertThat(result).isNotNull();
// more asserts if needed
}
}
< /code>
Но когда я запускаю этот тест, я получаю следующую ошибку: < /p>
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.example.mapper.MyEntityMapperTest': Unsatisfied dependency expressed through field 'underTest'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.mapper.MyEntityMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at ...
< /code>
Проверка журналов подробно и проведено в веб -исследованиях, я обнаружил, что это может быть проблемой инициализации контекста. Кажется, что Springboot использует некоторых слушателей, чтобы подготовить некоторые бобы. Когда начинается пружина, я нахожу следующее сообщение: < /p>
{
"logger_name": "com.example.mapper.MyEntityMapperTest",
"message": "Started MyEntityMapperTest in 0.849 seconds (JVM running for 2.076)",
"log_level": "INFO",
"log_type": "DEFAULT",
"thread_name": "main",
"stack_trace": "-"
}

============================
CONDITIONS EVALUATION REPORT
============================

Positive matches:
-----------------

None

Negative matches:
-----------------

None

Exclusions:
-----------

None

Unconditional classes:
----------------------

None

{
"logger_name": "org.springframework.test.context.TestContextManager",
"message": "Caught exception while allowing TestExecutionListener [org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@1852a3ff] to prepare test instance [com.example.mapper.MyEntityMapperTest@3ce53f6a]",
"log_level": "ERROR",
"log_type": "DEFAULT",
"thread_name": "main",
"stack_trace": "o.s.b.f.NoSuchBeanDefinitionException: ..."
}
note : форматированные сообщения журнала в JSON для лучшей читаемости
обходной путь
Я нашел способ оборудования, просто загрузив полный контекст пружины. Похоже, что в таких обстоятельствах пружина правильно запускает все начатели и правильно загружает мою фасоль Mapper. Тем не менее, это подразумевает много времени, чтобы запустить простой тест и необходимость добавления невидимой конфигурации теста, например: < /p>

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

@SpringBootTest
@ActiveProfiles("test")
class MyEntityMapperTest {...}
с этим моим тестом работает правильно, но с недостатками, описанными ранее.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... apper-bean
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Context Springboottest с mapstruct.mapper bean
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Mapstruct Mapper создает NullPointerException, потому что Mapper AutoWailired is null
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Mapstruct Mapper создает NullPointerException, потому что Mapper AutoWailired is null
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Mapstruct Mapper возвращает не инициализированный Spring Bean
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Исключение Mapper Mapper Jackson с метадаными `$ Schema` в JSON
    Anonymous » » в форуме JAVA
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

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