@ Spring Boot 中的组件始终为空

qojgxg4l  于 2022-12-10  发布在  Spring
关注(0)|答案(1)|浏览(129)

我有两个标注为@Component的类
第一个
我把它们注入不同的服务
第一次
但是我的Map器一直都是空的。我没有使用new命令为它们创建新的Object。而且我的仓库接口一切都很好,所以我注入注解(@AllArgsContrustor)的方式工作正常。x1c 0d1x注意,我有一些测试类,我在我的服务类上使用了@InjectMocks。会不会是因为这个注解而导致我的错误被占用了?

@ExtendWith(MockitoExtension.class)
public class OrderServiceTest {
  @Mock
  private OrderRepository orderRepository;
  @InjectMocks
  private OrderServiceImpl orderService;
knsnq2tg

knsnq2tg1#

你使用的是MockitoExtension,spring不会创建OrderMapper的组件。
如果需要实际实现,请使用MockitoExtension的@Spy注解。

@ExtendWith(MockitoExtension.class)
public class OrderServiceTest {
  @Mock
  private OrderRepository orderRepository;
  @Spy
  private OrderMapper orderMapper = new OrderMapper(); // Note: new OrderMapper() is optional as you have No Argument Constructor
  @InjectMocks
  private OrderServiceImpl orderService;

或者作为一个实践@Mock总是最好的方式去代替@Spy在单元测试的情况下。

相关问题