【问题标题】:Spock inmemory implementation mapstruct autowired inside mapper [closed]Spock内存实现mapstruct在映射器内部自动装配[关闭]
【发布时间】:2021-05-19 14:18:29
【问题描述】:

您好,我想在没有 h2 的情况下测试一些在内存实现中使用的方法。

在 userMapper 的实现中我有。

当我尝试运行我的测试时,我有这个 passwordEncoderMapper 的 NullPointerException。 如何在第一个屏幕截图(authService)没有加载弹簧上下文(@SpringBootTest)时注入到归档的自动连接。

【问题讨论】:

  • 请编辑您的问题,用代码块替换屏幕截图。查看您之前的一些问题,您已经知道如何做到这一点。理想情况下,提供MCVE 而不仅仅是不连贯的 sn-ps 集,没有人可以编译和运行以重现您的问题。这将大大增加您获得准确答案的机会。谢谢你。这个问题也有点不清楚——至少我不明白——而且你也忘了发布堆栈跟踪。

标签: java spring-boot unit-testing spock mapstruct


【解决方案1】:

passwordEncoderMapper 有一个NullPointerException 的原因是因为您将弹簧componentModelMappers#getMapper 混合在一起。你不应该那样做。

当您使用自定义 componentModel 时,您应该始终使用依赖注入来获取映射器。

您可以为测试做的是将Mapper#injectionStrategyInjectionStrategy#CONSTRUCTOR 一起使用,然后通过提供正确的依赖项来自行实例化映射器。

【讨论】:

  • 谢谢,有效
猜你喜欢
  • 2021-12-04
  • 2023-01-31
  • 2019-05-05
  • 1970-01-01
  • 2021-12-05
  • 2020-11-30
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
相关资源
最近更新 更多