当前位置: 首页 > 知识库问答 >
问题:

模拟服务嵌套映射器

仉俊能
2023-03-14

我有tje下面的映射器,我使用服务通过代码获取实体

@Mapper(uses = { LevelMaturityService.class, SatisfactionLevelService.class })
public interface EvaluationMapper extends EntityMapper<EvaluationDTO, Evaluation> {
@Mapping(source = "levelMaturity.code", target = "levelMaturity", qualifiedByName = { "levelMaturityService", "getLevelMaturityByCode" } )
@Mapping(source = "satisfactionLevel.code", target = "satisfactionLevel", qualifiedByName = { "satisfactionLevelService", "getSatisfactionLevelByCode" })
Evaluation toEntity(EvaluationDTO evaluationDTO);
}

public class EvaluationMapperTest {

private EvaluationMapper evaluationMapper = InstanceMapperConstant.EVALUATION_INSTANCE;

@Mock
private LevelMaturityService levelMaturityService;

@Mock
private SatisfactionLevelService satisfactionLevelService;

private static EvaluationInit evaluationInit;

@BeforeClass
public static void setUp() throws Exception {
    evaluationInit = new EvaluationInit();
}

@Test
public void givenEvaluationDTO_thenReturnEvaluation() {
    EvaluationDTO evaluationDTO = evaluationInit.buildEvaluationDTOWithId();
    when(levelMaturityService.getOne(evaluationDTO.getLevelMaturity().getCode())).thenReturn(Mockito.any(LevelMaturity.class)); // error
    when(satisfactionLevelService.getOne(evaluationDTO.getSatisfactionLevel().getCode())).thenReturn(Mockito.any(SatisfactionLevel.class));
    Evaluation evaluation = evaluationMapper.toEntity(evaluationDTO);
    assertEquals(evaluationDTO.getBusinessValueGroup(), evaluation.getBusinessValueGroup());
}

}

共有1个答案

宋耀
2023-03-14
evaluationDTO.getLevelMaturity().getCode()

这将抛出NullPointerException,因为您从未为它赋值。

evaluationdTo中设置值。它只是初始化为空。

 类似资料:
  • 我使用MapStruct来映射我的实体,我使用Mockito来嘲笑我的对象。 我想用MapStruct测试一个包含映射的方法。问题是嵌套映射器在我的单元测试中总是为null(在应用程序中工作得很好)

  • 我用的是Protobuf 3。从文档来看,似乎无法定义嵌套贴图: 我正在尝试创建一种消息类型来表示期权链的定价信息(出价和要价)。对于那些不熟悉这些金融工具的人,基本上我有一套“到期日期(YYYYMMDD)”。在每个过期日期中,我都有一组“strikes(float number;如果需要,可以用字符串表示,我同意)”。在每次行使中,我有两个期权,一个“看跌”和一个“看涨”(这被称为期权的“右”)

  • 我尝试使用MapStruct编写映射器类,如下所示: 目前它显示了“未知属性”“customer.customerid”和“usertypes.usertype.userid”等错误。有人能帮我用MapStruct映射所有这些元素吗? 问题2:我们如何绘制跟踪图?1)customerId usertypes->user->userid 2)pdtPrice offers->OffersType->

  • 我用下面的方法尝试了嵌套映射。 我在声明“root_cause”时出错:[{“type”:“mapper_parsing_exception”,“reason”:“root映射定义有不支持的参数:[type:nested]。” 感谢您的帮助。

  • 我有一个方法可以返回相当嵌套的JSON,比如: 当我尝试使用< code>JsonSlurper将这个JSON slurp到< code>def result中时,我得到了异常: 当<code>parseText</code>执行时产生引发的异常: 有什么办法吗?

  • 我有一个dynamodb表,它的一个属性包含一个嵌套的映射,我想更新一个特定的库存项目,该项目通过一个过滤器表达式进行过滤,从而从该映射中生成一个项目。 如何编写一个更新表达式来更新位置到名称=欧宝的项目的“就位三”,标签包括“x1”(也可能是f3)?这应该只更新第一个列表元素位置属性。